mount options: fix afs
Add a .show_options super operation to afs. Use generic_show_options() and save the complete option string in afs_get_sb(). Signed-off-by: Miklos Szeredi <mszeredi@suse.cz> Cc: David Howells <dhowells@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
e9b3961b66
commit
969729d56e
|
@ -52,6 +52,7 @@ static const struct super_operations afs_super_ops = {
|
||||||
.clear_inode = afs_clear_inode,
|
.clear_inode = afs_clear_inode,
|
||||||
.umount_begin = afs_umount_begin,
|
.umount_begin = afs_umount_begin,
|
||||||
.put_super = afs_put_super,
|
.put_super = afs_put_super,
|
||||||
|
.show_options = generic_show_options,
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct kmem_cache *afs_inode_cachep;
|
static struct kmem_cache *afs_inode_cachep;
|
||||||
|
@ -357,6 +358,7 @@ static int afs_get_sb(struct file_system_type *fs_type,
|
||||||
struct super_block *sb;
|
struct super_block *sb;
|
||||||
struct afs_volume *vol;
|
struct afs_volume *vol;
|
||||||
struct key *key;
|
struct key *key;
|
||||||
|
char *new_opts = kstrdup(options, GFP_KERNEL);
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
_enter(",,%s,%p", dev_name, options);
|
_enter(",,%s,%p", dev_name, options);
|
||||||
|
@ -408,9 +410,11 @@ static int afs_get_sb(struct file_system_type *fs_type,
|
||||||
deactivate_super(sb);
|
deactivate_super(sb);
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
sb->s_options = new_opts;
|
||||||
sb->s_flags |= MS_ACTIVE;
|
sb->s_flags |= MS_ACTIVE;
|
||||||
} else {
|
} else {
|
||||||
_debug("reuse");
|
_debug("reuse");
|
||||||
|
kfree(new_opts);
|
||||||
ASSERTCMP(sb->s_flags, &, MS_ACTIVE);
|
ASSERTCMP(sb->s_flags, &, MS_ACTIVE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -424,6 +428,7 @@ error:
|
||||||
afs_put_volume(params.volume);
|
afs_put_volume(params.volume);
|
||||||
afs_put_cell(params.cell);
|
afs_put_cell(params.cell);
|
||||||
key_put(params.key);
|
key_put(params.key);
|
||||||
|
kfree(new_opts);
|
||||||
_leave(" = %d", ret);
|
_leave(" = %d", ret);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue