On Sat, 16 Jun 2018 20:56:50 -0400 Keno Fischer <k...@juliacomputing.com> wrote:
> Darwin doesn't have either of these flags. Darwin does have > F_NOCACHE, which is similar to O_DIRECT, but has different > enough semantics that other projects don't generally map > them automatically. In any case, we don't support O_DIRECT > on Linux at the moment either. > > Signed-off-by: Keno Fischer <k...@juliacomputing.com> > --- Reviewed-by: Greg Kurz <gr...@kaod.org> > hw/9pfs/9p.c | 11 ++++++++++- > 1 file changed, 10 insertions(+), 1 deletion(-) > > diff --git a/hw/9pfs/9p.c b/hw/9pfs/9p.c > index 06139c9..e650459 100644 > --- a/hw/9pfs/9p.c > +++ b/hw/9pfs/9p.c > @@ -123,11 +123,18 @@ static int dotl_to_open_flags(int flags) > { P9_DOTL_NONBLOCK, O_NONBLOCK } , > { P9_DOTL_DSYNC, O_DSYNC }, > { P9_DOTL_FASYNC, FASYNC }, > +#ifndef CONFIG_DARWIN > + { P9_DOTL_NOATIME, O_NOATIME }, > + /* On Darwin, we could map to F_NOCACHE, which is > + similar, but doesn't quite have the same > + semantics. However, we don't support O_DIRECT > + even on linux at the moment, so we just ignore > + it here. */ > { P9_DOTL_DIRECT, O_DIRECT }, > +#endif > { P9_DOTL_LARGEFILE, O_LARGEFILE }, > { P9_DOTL_DIRECTORY, O_DIRECTORY }, > { P9_DOTL_NOFOLLOW, O_NOFOLLOW }, > - { P9_DOTL_NOATIME, O_NOATIME }, > { P9_DOTL_SYNC, O_SYNC }, > }; > > @@ -156,10 +163,12 @@ static int get_dotl_openflags(V9fsState *s, int oflags) > */ > flags = dotl_to_open_flags(oflags); > flags &= ~(O_NOCTTY | O_ASYNC | O_CREAT); > +#ifndef CONFIG_DARWIN > /* > * Ignore direct disk access hint until the server supports it. > */ > flags &= ~O_DIRECT; > +#endif > return flags; > } >