diff options
author | David Howells <dhowells@redhat.com> | 2019-03-21 12:22:36 +0300 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2019-09-05 21:34:23 +0300 |
commit | 43ce4c1feadbc84c772518a2d1974f6ba1b15089 (patch) | |
tree | e3bc42b51b6c0ca84b4a7c99f676999ed0bf892f /include | |
parent | 0f071004109d9c8de7023b9a64fa2ba3fa87cbed (diff) | |
download | linux-43ce4c1feadbc84c772518a2d1974f6ba1b15089.tar.xz |
vfs: Add a single-or-reconfig keying to vfs_get_super()
Add an additional keying mode to vfs_get_super() to indicate that only a
single superblock should exist in the system, and that, if it does, further
mounts should invoke reconfiguration upon it.
This allows mount_single() to be replaced.
[Fix by Eric Biggers folded in]
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/fs_context.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/include/linux/fs_context.h b/include/linux/fs_context.h index 84a5eaa09f19..0424df7f6e6b 100644 --- a/include/linux/fs_context.h +++ b/include/linux/fs_context.h @@ -141,6 +141,7 @@ extern void put_fs_context(struct fs_context *fc); */ enum vfs_get_super_keying { vfs_get_single_super, /* Only one such superblock may exist */ + vfs_get_single_reconf_super, /* As above, but reconfigure if it exists */ vfs_get_keyed_super, /* Superblocks with different s_fs_info keys may exist */ vfs_get_independent_super, /* Multiple independent superblocks may exist */ }; @@ -155,6 +156,9 @@ extern int get_tree_nodev(struct fs_context *fc, extern int get_tree_single(struct fs_context *fc, int (*fill_super)(struct super_block *sb, struct fs_context *fc)); +extern int get_tree_single_reconf(struct fs_context *fc, + int (*fill_super)(struct super_block *sb, + struct fs_context *fc)); extern int get_tree_keyed(struct fs_context *fc, int (*fill_super)(struct super_block *sb, struct fs_context *fc), |