Re: [PATCH 12/14] 9p: Implement show_options

From: Yury Norov
Date: Tue Jul 11 2017 - 18:34:57 EST


On Wed, Jul 05, 2017 at 04:25:37PM +0100, David Howells wrote:
> Implement the show_options superblock op for 9p as part of a bid to get
> rid of s_options and generic_show_options() to make it easier to implement
> a context-based mount where the mount options can be passed individually
> over a file descriptor.
>
> Signed-off-by: David Howells <dhowells@xxxxxxxxxx>
> cc: Eric Van Hensbergen <ericvh@xxxxxxxxx>
> cc: Ron Minnich <rminnich@xxxxxxxxxx>
> cc: Latchesar Ionkov <lucho@xxxxxxxxxx>
> cc: v9fs-developer@xxxxxxxxxxxxxxxxxxxxx
> ---

[...]

> +/*
> + * Display the mount options in /proc/mounts.
> + */
> +int v9fs_show_options(struct seq_file *m, struct dentry *root)
> +{
> + struct v9fs_session_info *v9ses = root->d_sb->s_fs_info;
> +
> + if (v9ses->debug)
> + seq_printf(m, ",debug=%x", v9ses->debug);
> + if (!uid_eq(v9ses->dfltuid, V9FS_DEFUID))
> + seq_printf(m, ",dfltuid=%u",
> + from_kuid_munged(&init_user_ns, v9ses->dfltuid));
> + if (!gid_eq(v9ses->dfltgid, V9FS_DEFGID))
> + seq_printf(m, ",dfltgid=%u",
> + from_kgid_munged(&init_user_ns, v9ses->dfltgid));
> + if (v9ses->afid != ~0)
> + seq_printf(m, ",afid=%u", v9ses->afid);
> + if (strcmp(v9ses->uname, V9FS_DEFUSER) != 0)
> + seq_printf(m, ",uname=%s", v9ses->uname);
> + if (strcmp(v9ses->aname, V9FS_DEFANAME) != 0)
> + seq_printf(m, ",aname=%s", v9ses->aname);
> + if (v9ses->nodev)
> + seq_puts(m, ",nodevmap");
> + if (v9ses->cache)
> + seq_printf(m, ",%s", v9fs_cache_modes[v9ses->cache]);
> + if (v9ses->cachetag && v9ses->cache == CACHE_FSCACHE)
> + seq_printf(m, ",cachetag=%s", v9ses->cachetag);

Hi David,

I just found that this patch breaks the next-20170711 build for me:
fs/9p/v9fs.c: In function âv9fs_show_optionsâ:
fs/9p/v9fs.c:140:13: error: âstruct v9fs_session_infoâ has no member
named âcachetagâ; did you mean âcacheâ?
if (v9ses->cachetag && v9ses->cache == CACHE_FSCACHE)
^~~~~~~~
cache
fs/9p/v9fs.c:141:40: error: âstruct v9fs_session_infoâ has no member named âcachetagâ; did you mean âcacheâ?
seq_printf(m, ",cachetag=%s", v9ses->cachetag);
^~~~~~~~
cache
It seems you forgot to wrap it with #ifdef CONFIG_9P_FSCACHE

Yury