9p: fix cache/debug options printing in v9fs_show_options
commitpull/1354/merge4eb3117888changed the cache= option to accept either string shortcuts or bitfield values. It also changed /proc/mounts to emit the option as the hexadecimal numeric value rather than the shortcut string. However, by printing "cache=%x" without the leading 0x, shortcuts such as "cache=loose" will emit "cache=f" and 'f' is not a string that is parseable by kstrtoint(), so remounting may fail if a remount with "cache=f" is attempted. debug=%x has had the same problem since options have been displayed inc4fac91004("9p: Implement show_options") Fix these by adding the 0x prefix to the hexadecimal value shown in /proc/mounts. Fixes:4eb3117888("fs/9p: Rework cache modes and add new options to Documentation") Signed-off-by: Eric Sandeen <sandeen@redhat.com> Message-ID: <54b93378-dcf1-4b04-922d-c8b4393da299@redhat.com> [Dominique: use %#x at Al Viro's suggestion, also handle debug] Tested-by: Remi Pommarel <repk@triplefau.lt> Signed-off-by: Dominique Martinet <asmadeus@codewreck.org>
parent
1f3e4142c0
commit
f044561331
|
|
@ -132,7 +132,7 @@ int v9fs_show_options(struct seq_file *m, struct dentry *root)
|
||||||
struct v9fs_session_info *v9ses = root->d_sb->s_fs_info;
|
struct v9fs_session_info *v9ses = root->d_sb->s_fs_info;
|
||||||
|
|
||||||
if (v9ses->debug)
|
if (v9ses->debug)
|
||||||
seq_printf(m, ",debug=%x", v9ses->debug);
|
seq_printf(m, ",debug=%#x", v9ses->debug);
|
||||||
if (!uid_eq(v9ses->dfltuid, V9FS_DEFUID))
|
if (!uid_eq(v9ses->dfltuid, V9FS_DEFUID))
|
||||||
seq_printf(m, ",dfltuid=%u",
|
seq_printf(m, ",dfltuid=%u",
|
||||||
from_kuid_munged(&init_user_ns, v9ses->dfltuid));
|
from_kuid_munged(&init_user_ns, v9ses->dfltuid));
|
||||||
|
|
@ -148,7 +148,7 @@ int v9fs_show_options(struct seq_file *m, struct dentry *root)
|
||||||
if (v9ses->nodev)
|
if (v9ses->nodev)
|
||||||
seq_puts(m, ",nodevmap");
|
seq_puts(m, ",nodevmap");
|
||||||
if (v9ses->cache)
|
if (v9ses->cache)
|
||||||
seq_printf(m, ",cache=%x", v9ses->cache);
|
seq_printf(m, ",cache=%#x", v9ses->cache);
|
||||||
#ifdef CONFIG_9P_FSCACHE
|
#ifdef CONFIG_9P_FSCACHE
|
||||||
if (v9ses->cachetag && (v9ses->cache & CACHE_FSCACHE))
|
if (v9ses->cachetag && (v9ses->cache & CACHE_FSCACHE))
|
||||||
seq_printf(m, ",cachetag=%s", v9ses->cachetag);
|
seq_printf(m, ",cachetag=%s", v9ses->cachetag);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue