summaryrefslogtreecommitdiff
path: root/include/linux/fs_context.h
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2018-12-23 18:55:56 -0500
committerAl Viro <viro@zeniv.linux.org.uk>2019-01-30 17:44:27 -0500
commitf3a09c92018a91ad0981146a4ac59414f814d801 (patch)
treec500afabc514faf977ceacfbe57ce04910bcc3e0 /include/linux/fs_context.h
parente1a91586d5da6f879b6dd385a2e7227bf1653570 (diff)
downloadlwn-f3a09c92018a91ad0981146a4ac59414f814d801.tar.gz
lwn-f3a09c92018a91ad0981146a4ac59414f814d801.zip
introduce fs_context methods
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'include/linux/fs_context.h')
-rw-r--r--include/linux/fs_context.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/include/linux/fs_context.h b/include/linux/fs_context.h
index 7feb018c7a9e..087c12954360 100644
--- a/include/linux/fs_context.h
+++ b/include/linux/fs_context.h
@@ -20,8 +20,13 @@ struct cred;
struct dentry;
struct file_operations;
struct file_system_type;
+struct mnt_namespace;
struct net;
+struct pid_namespace;
+struct super_block;
struct user_namespace;
+struct vfsmount;
+struct path;
enum fs_context_purpose {
FS_CONTEXT_FOR_MOUNT, /* New superblock for explicit mount */
@@ -39,6 +44,7 @@ enum fs_context_purpose {
* See Documentation/filesystems/mounting.txt
*/
struct fs_context {
+ const struct fs_context_operations *ops;
struct file_system_type *fs_type;
void *fs_private; /* The filesystem's context */
struct dentry *root; /* The root and superblock */
@@ -54,6 +60,13 @@ struct fs_context {
bool need_free:1; /* Need to call ops->free() */
};
+struct fs_context_operations {
+ void (*free)(struct fs_context *fc);
+ int (*parse_monolithic)(struct fs_context *fc, void *data);
+ int (*get_tree)(struct fs_context *fc);
+ int (*reconfigure)(struct fs_context *fc);
+};
+
/*
* fs_context manipulation functions.
*/