* Misono Tomohiro (misono.tomoh...@jp.fujitsu.com) wrote: > > From: Miklos Szeredi <mszer...@redhat.com> > > > > Signed-off-by: Miklos Szeredi <mszer...@redhat.com> > > --- > > tools/virtiofsd/helper.c | 3 +++ > > tools/virtiofsd/passthrough_ll.c | 7 ++++++- > > 2 files changed, 9 insertions(+), 1 deletion(-) > > > > diff --git a/tools/virtiofsd/helper.c b/tools/virtiofsd/helper.c > > index c8cb88afdd..36eb273d8e 100644 > > --- a/tools/virtiofsd/helper.c > > +++ b/tools/virtiofsd/helper.c > > @@ -154,6 +154,9 @@ void fuse_cmdline_help(void) > > " allowed (default: 10)\n" > > " -o norace disable racy fallback\n" > > " default: false\n" > > + " -o readdirplus|no_readdirplus\n" > > + " enable/disable readirplus\n" > > + " default: readdirplus\n" > > Actually, default behavior is > 1. no_readdirplus if cache=none > 2. readdirplus otherwise. > So help message should be fixed.
Thanks, I've made that: -o readdirplus|no_readdirplus enable/disable readirplus default: readdirplus except with cache=never and then swapped never for none in the 'clean up cache related options' patch. > Reviewed-by: Misono Tomohiro <misono.tomoh...@jp.fujitsu.com> Thanks. > > > ); > > } > > > > diff --git a/tools/virtiofsd/passthrough_ll.c > > b/tools/virtiofsd/passthrough_ll.c > > index ae364a4825..b15633a044 100644 > > --- a/tools/virtiofsd/passthrough_ll.c > > +++ b/tools/virtiofsd/passthrough_ll.c > > @@ -117,6 +117,8 @@ struct lo_data { > > double timeout; > > int cache; > > int timeout_set; > > + int readdirplus_set; > > + int readdirplus_clear; > > struct lo_inode root; /* protected by lo->mutex */ > > struct lo_map ino_map; /* protected by lo->mutex */ > > struct lo_map dirp_map; /* protected by lo->mutex */ > > @@ -140,6 +142,8 @@ static const struct fuse_opt lo_opts[] = { > > { "cache=auto", offsetof(struct lo_data, cache), CACHE_NORMAL }, > > { "cache=always", offsetof(struct lo_data, cache), CACHE_ALWAYS }, > > { "norace", offsetof(struct lo_data, norace), 1 }, > > + { "readdirplus", offsetof(struct lo_data, readdirplus_set), 1 }, > > + { "no_readdirplus", offsetof(struct lo_data, readdirplus_clear), 1 }, > > FUSE_OPT_END > > }; > > static bool use_syslog = false; > > @@ -478,7 +482,8 @@ static void lo_init(void *userdata, struct > > fuse_conn_info *conn) > > fuse_log(FUSE_LOG_DEBUG, "lo_init: activating flock locks\n"); > > conn->want |= FUSE_CAP_FLOCK_LOCKS; > > } > > - if (lo->cache == CACHE_NEVER) { > > + if ((lo->cache == CACHE_NEVER && !lo->readdirplus_set) || > > + lo->readdirplus_clear) { > > fuse_log(FUSE_LOG_DEBUG, "lo_init: disabling readdirplus\n"); > > conn->want &= ~FUSE_CAP_READDIRPLUS; > > } > > -- > > 2.24.1 > -- Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK