On Sat, 26 May 2018 01:23:10 -0400 k...@juliacomputing.com wrote: > From: Keno Fischer <k...@alumni.harvard.edu> > > Signed-off-by: Keno Fischer <k...@juliacomputing.com> > --- > hw/9pfs/9p.c | 37 +++++++++++++++++++++++-------------- > 1 file changed, 23 insertions(+), 14 deletions(-) > > diff --git a/hw/9pfs/9p.c b/hw/9pfs/9p.c > index 49654ae..f5f00aa 100644 > --- a/hw/9pfs/9p.c > +++ b/hw/9pfs/9p.c > @@ -115,20 +115,27 @@ static int dotl_to_open_flags(int flags) > int oflags = flags & O_ACCMODE; > > DotlOpenflagMap dotl_oflag_map[] = { > - { P9_DOTL_CREATE, O_CREAT }, > - { P9_DOTL_EXCL, O_EXCL }, > - { P9_DOTL_NOCTTY , O_NOCTTY }, > - { P9_DOTL_TRUNC, O_TRUNC }, > - { P9_DOTL_APPEND, O_APPEND }, > - { P9_DOTL_NONBLOCK, O_NONBLOCK } , > - { P9_DOTL_DSYNC, O_DSYNC }, > - { P9_DOTL_FASYNC, FASYNC }, > - { P9_DOTL_DIRECT, O_DIRECT }, > - { 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 }, > + {P9_DOTL_CREATE, O_CREAT}, > + {P9_DOTL_EXCL, O_EXCL}, > + {P9_DOTL_NOCTTY, O_NOCTTY}, > + {P9_DOTL_TRUNC, O_TRUNC}, > + {P9_DOTL_APPEND, O_APPEND}, > + {P9_DOTL_NONBLOCK, O_NONBLOCK}, > + {P9_DOTL_DSYNC, O_DSYNC}, > + {P9_DOTL_FASYNC, FASYNC},
Please don't kill the spaces. > +#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 But are these semantics worse than dumping the flag ? > + even on linux at the moment, so we just ignore > + it here. */ Yeah, and I doubt we'll ever support it on linux either. But, anyway, why filter these out ? Do they cause a build break ? > + {P9_DOTL_DIRECT, O_DIRECT}, > +#endif > + {P9_DOTL_LARGEFILE, O_LARGEFILE}, > + {P9_DOTL_DIRECTORY, O_DIRECTORY}, > + {P9_DOTL_NOFOLLOW, O_NOFOLLOW}, > + {P9_DOTL_SYNC, O_SYNC}, > }; > > for (i = 0; i < ARRAY_SIZE(dotl_oflag_map); i++) { > @@ -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; > } >