Commit 85bf9a0e authored by Alexander Mikhalitsyn's avatar Alexander Mikhalitsyn Committed by Jonathan Corbet
Browse files

docs: filesystems: vfs: actualize struct file_system_type description



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: default avatarAlexander Mikhalitsyn <aleksandr.mikhalitsyn@canonical.com>
Reviewed-by: default avatarChristian Brauner <brauner@kernel.org>
Link: https://lore.kernel.org/r/20230313130718.253708-2-aleksandr.mikhalitsyn@canonical.com


Signed-off-by: default avatarJonathan Corbet <corbet@lwn.net>
parent d2ea66a6
Loading
Loading
Loading
Loading
+27 −4
Original line number Diff line number Diff line
@@ -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 *);
		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: