docs: filesystems: vfs: actualize struct file_system_type description
authorAlexander Mikhalitsyn <aleksandr.mikhalitsyn@canonical.com>
Mon, 13 Mar 2023 13:07:17 +0000 (14:07 +0100)
committerJonathan Corbet <corbet@lwn.net>
Tue, 14 Mar 2023 18:12:11 +0000 (12:12 -0600)
Added descriptions for:
- fscontext API ('init_fs_context' method, 'parameters' field)
- 'fs_supers' field

Cc: Eric Biggers <ebiggers@kernel.org>
Cc: Miklos Szeredi <mszeredi@redhat.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Christian Brauner <brauner@kernel.org>
Cc: linux-fsdevel@vger.kernel.org
Cc: linux-doc@vger.kernel.org
Signed-off-by: Alexander Mikhalitsyn <aleksandr.mikhalitsyn@canonical.com>
Reviewed-by: Christian Brauner <brauner@kernel.org>
Link: https://lore.kernel.org/r/20230313130718.253708-2-aleksandr.mikhalitsyn@canonical.com
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Documentation/filesystems/vfs.rst

index f3b344f..120c428 100644 (file)
@@ -107,7 +107,7 @@ file /proc/filesystems.
 struct file_system_type
 -----------------------
 
-This describes the filesystem.  As of kernel 2.6.39, the following
+This describes the filesystem.  The following
 members are defined:
 
 .. code-block:: c
@@ -115,14 +115,24 @@ members are defined:
        struct file_system_type {
                const char *name;
                int fs_flags;
+               int (*init_fs_context)(struct fs_context *);
+               const struct fs_parameter_spec *parameters;
                struct dentry *(*mount) (struct file_system_type *, int,
-                                        const char *, void *);
+                       const char *, void *);
                void (*kill_sb) (struct super_block *);
                struct module *owner;
                struct file_system_type * next;
-               struct list_head fs_supers;
+               struct hlist_head fs_supers;
+
                struct lock_class_key s_lock_key;
                struct lock_class_key s_umount_key;
+               struct lock_class_key s_vfs_rename_key;
+               struct lock_class_key s_writers_key[SB_FREEZE_LEVELS];
+
+               struct lock_class_key i_lock_key;
+               struct lock_class_key i_mutex_key;
+               struct lock_class_key invalidate_lock_key;
+               struct lock_class_key i_mutex_dir_key;
        };
 
 ``name``
@@ -132,6 +142,15 @@ members are defined:
 ``fs_flags``
        various flags (i.e. FS_REQUIRES_DEV, FS_NO_DCACHE, etc.)
 
+``init_fs_context``
+       Initializes 'struct fs_context' ->ops and ->fs_private fields with
+       filesystem-specific data.
+
+``parameters``
+       Pointer to the array of filesystem parameters descriptors
+       'struct fs_parameter_spec'.
+       More info in Documentation/filesystems/mount_api.rst.
+
 ``mount``
        the method to call when a new instance of this filesystem should
        be mounted
@@ -148,7 +167,11 @@ members are defined:
 ``next``
        for internal VFS use: you should initialize this to NULL
 
-  s_lock_key, s_umount_key: lockdep-specific
+``fs_supers``
+       for internal VFS use: hlist of filesystem instances (superblocks)
+
+  s_lock_key, s_umount_key, s_vfs_rename_key, s_writers_key,
+  i_lock_key, i_mutex_key, invalidate_lock_key, i_mutex_dir_key: lockdep-specific
 
 The mount() method has the following arguments: