From 533770cc0ae84890624dc129609f3d75855c8982 Mon Sep 17 00:00:00 2001 From: Al Viro Date: Tue, 3 Sep 2019 19:05:48 -0400 Subject: new helper: get_tree_keyed() For vfs_get_keyed_super users. Signed-off-by: Al Viro --- include/linux/fs_context.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'include/linux') diff --git a/include/linux/fs_context.h b/include/linux/fs_context.h index 7c6fe3d47fa6..aad5e68d58e2 100644 --- a/include/linux/fs_context.h +++ b/include/linux/fs_context.h @@ -136,7 +136,7 @@ extern int vfs_get_tree(struct fs_context *fc); extern void put_fs_context(struct fs_context *fc); /* - * sget() wrapper to be called from the ->get_tree() op. + * sget() wrappers to be called from the ->get_tree() op. */ enum vfs_get_super_keying { vfs_get_single_super, /* Only one such superblock may exist */ @@ -147,12 +147,17 @@ extern int vfs_get_super(struct fs_context *fc, enum vfs_get_super_keying keying, int (*fill_super)(struct super_block *sb, struct fs_context *fc)); + extern int get_tree_nodev(struct fs_context *fc, int (*fill_super)(struct super_block *sb, 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_keyed(struct fs_context *fc, + int (*fill_super)(struct super_block *sb, + struct fs_context *fc), + void *key); extern const struct file_operations fscontext_fops; -- cgit v1.2.3 From fe62c3a4e17ddfe672710425ab6eba2ba7203526 Mon Sep 17 00:00:00 2001 From: David Howells Date: Wed, 27 Mar 2019 14:15:16 +0000 Subject: vfs: Create fs_context-aware mount_bdev() replacement Create a function, get_tree_bdev(), that is fs_context-aware and a ->get_tree() counterpart of mount_bdev(). It caches the block device pointer in the fs_context struct so that this information can be passed into sget_fc()'s test and set functions. Signed-off-by: David Howells cc: Jens Axboe cc: linux-block@vger.kernel.org Signed-off-by: Al Viro --- include/linux/fs_context.h | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'include/linux') diff --git a/include/linux/fs_context.h b/include/linux/fs_context.h index aad5e68d58e2..84a5eaa09f19 100644 --- a/include/linux/fs_context.h +++ b/include/linux/fs_context.h @@ -88,6 +88,7 @@ struct fs_context { struct mutex uapi_mutex; /* Userspace access mutex */ struct file_system_type *fs_type; void *fs_private; /* The filesystem's context */ + void *sget_key; struct dentry *root; /* The root and superblock */ struct user_namespace *user_ns; /* The user namespace for this mount */ struct net *net_ns; /* The network namespace for this mount */ @@ -159,6 +160,10 @@ extern int get_tree_keyed(struct fs_context *fc, struct fs_context *fc), void *key); +extern int get_tree_bdev(struct fs_context *fc, + int (*fill_super)(struct super_block *sb, + struct fs_context *fc)); + extern const struct file_operations fscontext_fops; /* -- cgit v1.2.3 From 0f071004109d9c8de7023b9a64fa2ba3fa87cbed Mon Sep 17 00:00:00 2001 From: David Howells Date: Mon, 25 Mar 2019 16:38:31 +0000 Subject: mtd: Provide fs_context-aware mount_mtd() replacement Provide a function, get_tree_mtd(), to replace mount_mtd(), using an fs_context struct to hold the parameters. Signed-off-by: David Howells cc: David Woodhouse cc: Brian Norris cc: Boris Brezillon cc: Marek Vasut cc: Richard Weinberger cc: linux-mtd@lists.infradead.org Signed-off-by: Al Viro --- include/linux/mtd/super.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'include/linux') diff --git a/include/linux/mtd/super.h b/include/linux/mtd/super.h index 056c9932c723..42db3f8e8136 100644 --- a/include/linux/mtd/super.h +++ b/include/linux/mtd/super.h @@ -14,6 +14,9 @@ #include #include +extern int get_tree_mtd(struct fs_context *fc, + int (*fill_super)(struct super_block *sb, + struct fs_context *fc)); extern struct dentry *mount_mtd(struct file_system_type *fs_type, int flags, const char *dev_name, void *data, int (*fill_super)(struct super_block *, void *, int)); -- cgit v1.2.3