@@ -87,10 +87,10 @@ functions:
.. code-block:: c
- #include <linux/fs.h>
+ #include <linux/fs_type.h>
- extern int register_filesystem(struct file_system_type *);
- extern int unregister_filesystem(struct file_system_type *);
+ int register_filesystem(struct file_system_type *);
+ int unregister_filesystem(struct file_system_type *);
The passed struct file_system_type describes your filesystem. When a
request is made to mount a filesystem onto a directory in your
@@ -12,6 +12,7 @@
#include <linux/fs.h>
#include <linux/fs_context.h>
#include <linux/fs_parser.h>
+#include <linux/fs_type.h>
#include <linux/fsnotify.h>
#include <linux/backing-dev.h>
#include <linux/init.h>
@@ -14,6 +14,7 @@
#include <linux/fs.h>
#include <linux/fs_context.h>
#include <linux/fs_parser.h>
+#include <linux/fs_type.h>
#include <linux/namei.h>
#include <linux/vfs.h>
#include <linux/slab.h>
@@ -41,7 +42,6 @@ struct hypfs_sb_info {
};
static const struct file_operations hypfs_file_ops;
-static struct file_system_type hypfs_type;
static const struct super_operations hypfs_s_ops;
/* start of list of all dentries, which have to be deleted on update */
@@ -24,6 +24,7 @@
#include <linux/workqueue.h>
#include <linux/mutex.h>
#include <linux/fs.h>
+#include <linux/fs_type.h>
#include <linux/mount.h>
#include <linux/file.h>
#include <linux/uaccess.h>
@@ -17,6 +17,7 @@
#include <linux/debugfs.h>
#include <linux/fs.h>
#include <linux/fs_parser.h>
+#include <linux/fs_type.h>
#include <linux/sysfs.h>
#include <linux/kernfs.h>
#include <linux/seq_buf.h>
@@ -5,6 +5,7 @@
* Copyright (C) 2016 - 2020 Christoph Hellwig
*/
+#include <linux/fs_type.h>
#include <linux/init.h>
#include <linux/mm.h>
#include <linux/slab.h>
@@ -19,6 +19,7 @@
#include <linux/mutex.h>
#include <linux/mount.h>
#include <linux/fs_parser.h>
+#include <linux/fs_type.h>
#include <linux/sched.h>
#include <linux/seq_file.h>
#include <linux/slab.h>
@@ -22,6 +22,7 @@
#include <linux/blkdev.h>
#include <linux/namei.h>
#include <linux/fs.h>
+#include <linux/fs_type.h>
#include <linux/shmem_fs.h>
#include <linux/ramfs.h>
#include <linux/sched.h>
@@ -13,6 +13,7 @@
#include <linux/uio.h>
#include <linux/dax.h>
#include <linux/fs.h>
+#include <linux/fs_type.h>
#include "dax-private.h"
/**
@@ -12,6 +12,7 @@
*/
#include <linux/fs.h>
+#include <linux/fs_type.h>
#include <linux/slab.h>
#include <linux/dma-buf.h>
#include <linux/dma-fence.h>
@@ -28,6 +28,7 @@
#include <linux/debugfs.h>
#include <linux/fs.h>
+#include <linux/fs_type.h>
#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/mount.h>
@@ -5,6 +5,7 @@
*/
#include <linux/fs.h>
+#include <linux/fs_type.h>
#include <linux/mount.h>
#include "i915_drv.h"
@@ -34,6 +34,7 @@
#include <linux/fs.h>
#include <linux/fs_context.h>
+#include <linux/fs_type.h>
#include <linux/mount.h>
#include <linux/pagemap.h>
#include <linux/init.h>
@@ -3,6 +3,7 @@
* Copyright 2014 IBM Corp.
*/
+#include <linux/fs_type.h>
#include <linux/pci.h>
#include <linux/slab.h>
#include <linux/file.h>
@@ -61,6 +61,7 @@
#include <linux/fs.h>
#include <linux/fs_context.h>
+#include <linux/fs_type.h>
#include <linux/pagemap.h>
#include <linux/slab.h>
#include <linux/uaccess.h>
@@ -9,6 +9,7 @@
*/
#include <linux/file.h>
+#include <linux/fs_type.h>
#include <linux/idr.h>
#include <linux/module.h>
#include <linux/mount.h>
@@ -18,6 +18,7 @@
#include <linux/pagemap.h>
#include <linux/export.h>
#include <linux/fs_parser.h>
+#include <linux/fs_type.h>
#include <linux/hid.h>
#include <linux/mm.h>
#include <linux/module.h>
@@ -13,6 +13,7 @@
#include <linux/module.h>
#include <linux/fs.h>
#include <linux/fs_context.h>
+#include <linux/fs_type.h>
#include <linux/pagemap.h>
#include <linux/uts.h>
#include <linux/wait.h>
@@ -15,6 +15,7 @@
#include <linux/module.h>
#include <linux/fs.h>
#include <linux/fs_context.h>
+#include <linux/fs_type.h>
#include <linux/magic.h>
#include <xen/xen.h>
@@ -11,6 +11,7 @@
#include <linux/module.h>
#include <linux/errno.h>
#include <linux/fs.h>
+#include <linux/fs_type.h>
#include <linux/sched.h>
#include <linux/cred.h>
#include <linux/parser.h>
@@ -9,6 +9,7 @@
#include <linux/module.h>
#include <linux/errno.h>
#include <linux/fs.h>
+#include <linux/fs_type.h>
#include <linux/file.h>
#include <linux/stat.h>
#include <linux/string.h>
@@ -4,6 +4,7 @@
*
* Copyright (C) 1997-1999 Russell King
*/
+#include <linux/fs_type.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/parser.h>
@@ -11,6 +11,7 @@
* (C) 1991 Linus Torvalds - minix filesystem
*/
+#include <linux/fs_type.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/statfs.h>
@@ -9,6 +9,7 @@
#include <linux/kernel.h>
#include <linux/ktime.h>
#include <linux/fs.h>
+#include <linux/fs_type.h>
#include <linux/filelock.h>
#include <linux/pagemap.h>
#include <linux/rxrpc.h>
@@ -22,6 +22,7 @@
#include <linux/fs.h>
#include <linux/pagemap.h>
#include <linux/fs_parser.h>
+#include <linux/fs_type.h>
#include <linux/statfs.h>
#include <linux/sched.h>
#include <linux/nsproxy.h>
@@ -24,6 +24,7 @@
#include <linux/sched/signal.h>
#include <linux/fs.h>
+#include <linux/fs_type.h>
#include <linux/file.h>
#include <linux/mm.h>
#include <linux/mman.h>
@@ -15,6 +15,7 @@
#include <linux/sched.h>
#include <linux/init.h>
#include <linux/fs.h>
+#include <linux/fs_type.h>
#include <linux/mount.h>
#include <linux/module.h>
#include <linux/kernel.h>
@@ -27,6 +27,7 @@
#include <linux/magic.h>
#include <linux/fs_context.h>
#include <linux/fs_parser.h>
+#include <linux/fs_type.h>
/* This is the range of ioctl() numbers we claim as ours */
#define AUTOFS_IOC_FIRST AUTOFS_IOC_READY
@@ -31,6 +31,7 @@
#include <linux/backing-dev.h>
#include <linux/exportfs.h>
#include <linux/fiemap.h>
+#include <linux/fs_type.h>
#include <linux/module.h>
#include <linux/pagemap.h>
#include <linux/posix_acl.h>
@@ -11,6 +11,7 @@
#include <linux/module.h>
#include <linux/slab.h>
#include <linux/fs.h>
+#include <linux/fs_type.h>
#include <linux/errno.h>
#include <linux/stat.h>
#include <linux/nls.h>
@@ -12,6 +12,7 @@
#include <linux/slab.h>
#include <linux/init.h>
#include <linux/fs.h>
+#include <linux/fs_type.h>
#include <linux/buffer_head.h>
#include <linux/vfs.h>
#include <linux/writeback.h>
@@ -24,6 +24,7 @@
#include <linux/namei.h>
#include <linux/mount.h>
#include <linux/fs_context.h>
+#include <linux/fs_type.h>
#include <linux/syscalls.h>
#include <linux/fs.h>
#include <linux/uaccess.h>
@@ -60,8 +61,6 @@ typedef struct {
refcount_t users; /* sync removal with load_misc_binary() */
} Node;
-static struct file_system_type bm_fs_type;
-
/*
* Max length of the register string. Determined by:
* - 7 delimiters
@@ -6,6 +6,7 @@
#include <linux/blkdev.h>
#include <linux/module.h>
#include <linux/fs.h>
+#include <linux/fs_type.h>
#include <linux/pagemap.h>
#include <linux/highmem.h>
#include <linux/time.h>
@@ -4,6 +4,7 @@
*/
#include <linux/fs.h>
+#include <linux/fs_type.h>
#include <linux/mount.h>
#include <linux/pseudo_fs.h>
#include <linux/magic.h>
@@ -5,6 +5,7 @@
#include <linux/backing-dev.h>
#include <linux/ctype.h>
#include <linux/fs.h>
+#include <linux/fs_type.h>
#include <linux/inet.h>
#include <linux/in6.h>
#include <linux/module.h>
@@ -24,6 +24,7 @@
#include <linux/pid_namespace.h>
#include <linux/uaccess.h>
#include <linux/fs.h>
+#include <linux/fs_type.h>
#include <linux/vmalloc.h>
#include <linux/coda.h>
@@ -9,6 +9,7 @@
*/
#include <linux/fs.h>
+#include <linux/fs_type.h>
#include <linux/module.h>
#include <linux/mount.h>
#include <linux/fs_context.h>
@@ -25,6 +25,7 @@
#include <linux/mtd/mtd.h>
#include <linux/mtd/super.h>
#include <linux/fs_context.h>
+#include <linux/fs_type.h>
#include <linux/slab.h>
#include <linux/vfs.h>
#include <linux/mutex.h>
@@ -19,6 +19,7 @@
#include <linux/string.h>
#include <linux/mm.h>
#include <linux/fs.h>
+#include <linux/fs_type.h>
#include <linux/fscrypt.h>
#include <linux/fsnotify.h>
#include <linux/slab.h>
@@ -14,6 +14,7 @@
#include <linux/module.h>
#include <linux/fs.h>
+#include <linux/fs_type.h>
#include <linux/mount.h>
#include <linux/pagemap.h>
#include <linux/init.h>
@@ -12,6 +12,7 @@
#include <linux/module.h>
#include <linux/init.h>
#include <linux/fs.h>
+#include <linux/fs_type.h>
#include <linux/sched.h>
#include <linux/namei.h>
#include <linux/slab.h>
@@ -20,6 +20,7 @@
#include <linux/key.h>
#include <linux/parser.h>
#include <linux/fs_stack.h>
+#include <linux/fs_type.h>
#include <linux/slab.h>
#include <linux/magic.h>
#include "ecryptfs_kernel.h"
@@ -9,6 +9,7 @@
#include <linux/fs.h>
#include <linux/fs_context.h>
#include <linux/fs_parser.h>
+#include <linux/fs_type.h>
#include <linux/module.h>
#include <linux/pagemap.h>
#include <linux/ucs2_string.h>
@@ -7,6 +7,7 @@
* Portions derived from work (c) 1995,1996 Christian Vogelgsang.
*/
+#include <linux/fs_type.h>
#include <linux/init.h>
#include <linux/module.h>
#include <linux/exportfs.h>
@@ -8,6 +8,7 @@
#define __EROFS_INTERNAL_H
#include <linux/fs.h>
+#include <linux/fs_type.h>
#include <linux/dax.h>
#include <linux/dcache.h>
#include <linux/mm.h>
@@ -9,6 +9,7 @@
#include <linux/crc32c.h>
#include <linux/fs_context.h>
#include <linux/fs_parser.h>
+#include <linux/fs_type.h>
#include <linux/exportfs.h>
#include "xattr.h"
@@ -14,6 +14,7 @@
#include <linux/seq_file.h>
#include <linux/blkdev.h>
#include <linux/fs_struct.h>
+#include <linux/fs_type.h>
#include <linux/iversion.h>
#include <linux/nls.h>
#include <linux/buffer_head.h>
@@ -20,6 +20,7 @@
#include <linux/module.h>
#include <linux/string.h>
#include <linux/fs.h>
+#include <linux/fs_type.h>
#include <linux/slab.h>
#include <linux/init.h>
#include <linux/blkdev.h>
@@ -20,6 +20,7 @@
#include <linux/module.h>
#include <linux/string.h>
#include <linux/fs.h>
+#include <linux/fs_type.h>
#include <linux/time.h>
#include <linux/vmalloc.h>
#include <linux/slab.h>
@@ -9,6 +9,7 @@
#include <linux/init.h>
#include <linux/fs.h>
#include <linux/fs_context.h>
+#include <linux/fs_type.h>
#include <linux/sched/mm.h>
#include <linux/statfs.h>
#include <linux/buffer_head.h>
@@ -7,6 +7,7 @@
* Rewritten for constant inumbers 1999 by Al Viro
*/
+#include <linux/fs_type.h>
#include <linux/module.h>
#include <linux/iversion.h>
#include "fat.h"
@@ -16,6 +16,7 @@
* OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
*/
+#include <linux/fs_type.h>
#include <linux/module.h>
#include <linux/ctype.h>
#include <linux/slab.h>
@@ -17,6 +17,7 @@
#include <linux/slab.h>
#include <linux/uaccess.h>
#include <linux/fs_parser.h>
+#include <linux/fs_type.h>
/*
* Handling of filesystem drivers list.
@@ -12,6 +12,7 @@
#include <linux/blkdev.h>
#include <linux/fs.h>
+#include <linux/fs_type.h>
#include <linux/buffer_head.h>
#include <linux/kernel.h>
#include <linux/slab.h>
@@ -10,6 +10,7 @@
#include <linux/module.h>
#include <linux/fs_context.h>
#include <linux/fs_parser.h>
+#include <linux/fs_type.h>
#include <linux/fs.h>
#include <linux/mount.h>
#include <linux/nsproxy.h>
@@ -7,6 +7,7 @@
#include <linux/fs_context.h>
#include <linux/fs_parser.h>
+#include <linux/fs_type.h>
#include <linux/slab.h>
#include <linux/uaccess.h>
#include <linux/syscalls.h>
@@ -11,6 +11,7 @@
#include <linux/init.h>
#include <linux/module.h>
#include <linux/fs_context.h>
+#include <linux/fs_type.h>
#define FUSE_CTL_SUPER_MAGIC 0x65735543
@@ -17,6 +17,7 @@
#include <linux/moduleparam.h>
#include <linux/fs_context.h>
#include <linux/fs_parser.h>
+#include <linux/fs_type.h>
#include <linux/statfs.h>
#include <linux/random.h>
#include <linux/sched.h>
@@ -15,6 +15,7 @@
#include <linux/delay.h>
#include <linux/fs_context.h>
#include <linux/fs_parser.h>
+#include <linux/fs_type.h>
#include <linux/highmem.h>
#include <linux/uio.h>
#include "fuse_i.h"
@@ -22,6 +22,7 @@
#include <linux/module.h>
#include <linux/backing-dev.h>
#include <linux/fs_parser.h>
+#include <linux/fs_type.h>
#include "gfs2.h"
#include "incore.h"
@@ -8,6 +8,7 @@
#define __SUPER_DOT_H__
#include <linux/fs.h>
+#include <linux/fs_type.h>
#include <linux/dcache.h>
#include "incore.h"
@@ -12,6 +12,7 @@
* Based on the minix file system code, (C) 1991, 1992 by Linus Torvalds
*/
+#include <linux/fs_type.h>
#include <linux/module.h>
#include <linux/blkdev.h>
#include <linux/backing-dev.h>
@@ -14,6 +14,7 @@
#include <linux/blkdev.h>
#include <linux/backing-dev.h>
#include <linux/fs.h>
+#include <linux/fs_type.h>
#include <linux/slab.h>
#include <linux/vfs.h>
#include <linux/nls.h>
@@ -7,6 +7,7 @@
*/
#include <linux/fs.h>
+#include <linux/fs_type.h>
#include <linux/magic.h>
#include <linux/module.h>
#include <linux/mm.h>
@@ -8,6 +8,7 @@
*/
#include "hpfs_fn.h"
+#include <linux/fs_type.h>
#include <linux/module.h>
#include <linux/parser.h>
#include <linux/init.h>
@@ -27,6 +27,7 @@
#include <linux/hugetlb.h>
#include <linux/pagevec.h>
#include <linux/fs_parser.h>
+#include <linux/fs_type.h>
#include <linux/mman.h>
#include <linux/slab.h>
#include <linux/dnotify.h>
@@ -5,6 +5,7 @@
*/
#include <linux/export.h>
#include <linux/fs.h>
+#include <linux/fs_type.h>
#include <linux/filelock.h>
#include <linux/mm.h>
#include <linux/backing-dev.h>
@@ -6,7 +6,6 @@
*/
struct super_block;
-struct file_system_type;
struct iomap;
struct iomap_ops;
struct linux_binprm;
@@ -15,6 +15,7 @@
#include <linux/init.h>
#include <linux/module.h>
+#include <linux/fs_type.h>
#include <linux/slab.h>
#include <linux/cred.h>
#include <linux/nls.h>
@@ -17,6 +17,7 @@
#include <linux/init.h>
#include <linux/list.h>
#include <linux/fs.h>
+#include <linux/fs_type.h>
#include <linux/err.h>
#include <linux/mount.h>
#include <linux/fs_context.h>
@@ -5,6 +5,7 @@
*/
#include <linux/fs.h>
+#include <linux/fs_type.h>
#include <linux/module.h>
#include <linux/parser.h>
#include <linux/completion.h>
@@ -42,7 +43,6 @@ static struct kmem_cache *jfs_inode_cachep;
static const struct super_operations jfs_super_operations;
static const struct export_operations jfs_export_operations;
-static struct file_system_type jfs_fs_type;
#define MAX_COMMIT_THREADS 64
static int commit_threads;
@@ -6,6 +6,7 @@
#include <linux/blkdev.h>
#include <linux/export.h>
+#include <linux/fs_type.h>
#include <linux/pagemap.h>
#include <linux/slab.h>
#include <linux/cred.h>
@@ -15,6 +15,7 @@
#include "minix.h"
#include <linux/buffer_head.h>
#include <linux/slab.h>
+#include <linux/fs_type.h>
#include <linux/init.h>
#include <linux/highuid.h>
#include <linux/vfs.h>
@@ -19,6 +19,7 @@
#include <linux/idr.h>
#include <linux/init.h> /* init_rootfs */
#include <linux/fs_struct.h> /* get_fs_root et.al. */
+#include <linux/fs_type.h>
#include <linux/fsnotify.h> /* fsnotify_vfsmount_delete */
#include <linux/file.h>
#include <linux/uaccess.h>
@@ -15,6 +15,7 @@
#include <linux/fs.h>
#include <linux/fs_context.h>
#include <linux/fs_parser.h>
+#include <linux/fs_type.h>
#include <linux/nfs_fs.h>
#include <linux/nfs_mount.h>
#include <linux/nfs4_mount.h>
@@ -5,6 +5,7 @@
#include "nfs4_fs.h"
#include <linux/fs_context.h>
+#include <linux/fs_type.h>
#include <linux/security.h>
#include <linux/crc32.h>
#include <linux/sunrpc/addr.h>
@@ -8,7 +8,6 @@
#ifndef __LINUX_INTERNAL_NFS_H
#define __LINUX_INTERNAL_NFS_H
-#include <linux/fs.h>
#include <linux/sunrpc/sched.h>
#include <linux/nfs_xdr.h>
@@ -33,6 +33,7 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include <linux/fs_struct.h>
+#include <linux/fs_type.h>
#include <linux/file.h>
#include <linux/falloc.h>
#include <linux/slab.h>
@@ -9,6 +9,7 @@
#include <linux/namei.h>
#include <linux/ctype.h>
#include <linux/fs_context.h>
+#include <linux/fs_type.h>
#include <linux/sunrpc/svcsock.h>
#include <linux/lockd/lockd.h>
@@ -27,6 +27,7 @@
#include <linux/module.h>
#include <linux/string.h>
#include <linux/slab.h>
+#include <linux/fs_type.h>
#include <linux/init.h>
#include <linux/blkdev.h>
#include <linux/parser.h>
@@ -3,6 +3,7 @@
#include <linux/pseudo_fs.h>
#include <linux/file.h>
#include <linux/fs.h>
+#include <linux/fs_type.h>
#include <linux/proc_fs.h>
#include <linux/proc_ns.h>
#include <linux/magic.h>
@@ -8,6 +8,7 @@
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
#include <linux/stddef.h>
+#include <linux/fs_type.h>
#include <linux/init.h>
#include <linux/slab.h>
#include <linux/string.h>
@@ -53,6 +53,7 @@
#include <linux/fs.h>
#include <linux/fs_context.h>
#include <linux/fs_parser.h>
+#include <linux/fs_type.h>
#include <linux/log2.h>
#include <linux/minmax.h>
#include <linux/module.h>
@@ -20,6 +20,7 @@
#include <linux/module.h>
#include <linux/fs.h>
+#include <linux/fs_type.h>
#include <linux/pagemap.h>
#include <linux/types.h>
#include <linux/slab.h>
@@ -9,6 +9,7 @@
#include <linux/module.h>
#include <linux/fs.h>
+#include <linux/fs_type.h>
#include <linux/types.h>
#include <linux/slab.h>
#include <linux/highmem.h>
@@ -7,6 +7,7 @@
#include <linux/sched.h>
#include <linux/slab.h>
#include <linux/fs.h>
+#include <linux/fs_type.h>
#include <linux/vfs.h>
#include <linux/cred.h>
#include <linux/parser.h>
@@ -10,6 +10,7 @@
#include <linux/string.h>
#include <linux/fs.h>
#include <linux/fs_context.h>
+#include <linux/fs_type.h>
#include <linux/init.h>
#include <linux/slab.h>
#include <linux/seq_file.h>
@@ -32,6 +32,7 @@
#include <linux/slab.h>
#include <linux/types.h>
#include <linux/fs.h>
+#include <linux/fs_type.h>
#include <linux/vmalloc.h>
#include <linux/aio.h>
@@ -18,6 +18,7 @@
#include <linux/file.h>
#include <linux/fs_context.h>
#include <linux/fs_parser.h>
+#include <linux/fs_type.h>
#include "overlayfs.h"
#include "params.h"
@@ -12,6 +12,7 @@
#include <linux/module.h>
#include <linux/init.h>
#include <linux/fs.h>
+#include <linux/fs_type.h>
#include <linux/log2.h>
#include <linux/mount.h>
#include <linux/pseudo_fs.h>
@@ -2,6 +2,7 @@
/*
* /proc/sys support
*/
+#include <linux/fs_type.h>
#include <linux/init.h>
#include <linux/sysctl.h>
#include <linux/poll.h>
@@ -20,6 +20,7 @@
#include <linux/mount.h>
#include <linux/pid_namespace.h>
#include <linux/fs_parser.h>
+#include <linux/fs_type.h>
#include <linux/cred.h>
#include <linux/magic.h>
#include <linux/slab.h>
@@ -11,6 +11,7 @@
#include <linux/nsproxy.h>
#include <linux/security.h>
#include <linux/fs_struct.h>
+#include <linux/fs_type.h>
#include <linux/sched/task.h>
#include "proc/internal.h" /* only for get_proc_task() in ->open() */
@@ -7,6 +7,7 @@
#include <linux/module.h>
#include <linux/fs.h>
+#include <linux/fs_type.h>
#include <linux/fsnotify.h>
#include <linux/pagemap.h>
#include <linux/highmem.h>
@@ -13,6 +13,7 @@
* 30-06-1998 by Frank Denis : first step to write inodes.
*/
+#include <linux/fs_type.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/slab.h>
@@ -11,6 +11,7 @@
*
*/
+#include <linux/fs_type.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/slab.h>
@@ -24,6 +24,7 @@
*/
#include <linux/fs.h>
+#include <linux/fs_type.h>
#include <linux/pagemap.h>
#include <linux/highmem.h>
#include <linux/time.h>
@@ -6,6 +6,7 @@
#include <linux/reiserfs_fs.h>
+#include <linux/fs_type.h>
#include <linux/slab.h>
#include <linux/interrupt.h>
#include <linux/sched.h>
@@ -11,6 +11,7 @@
* NO WARRANTY
*/
+#include <linux/fs_type.h>
#include <linux/module.h>
#include <linux/slab.h>
#include <linux/vmalloc.h>
@@ -61,6 +61,7 @@
#include <linux/module.h>
#include <linux/string.h>
#include <linux/fs.h>
+#include <linux/fs_type.h>
#include <linux/time.h>
#include <linux/slab.h>
#include <linux/init.h>
@@ -12,6 +12,7 @@
#include <linux/module.h>
#include <linux/fs.h>
+#include <linux/fs_type.h>
#include <linux/filelock.h>
#include <linux/mount.h>
#include <linux/slab.h>
@@ -6,6 +6,7 @@
*
*/
+#include <linux/fs_type.h>
#include <linux/slab.h>
#include <linux/ctype.h>
#include <linux/mempool.h>
@@ -20,6 +20,7 @@
#include <linux/fs.h>
#include <linux/fs_context.h>
#include <linux/fs_parser.h>
+#include <linux/fs_type.h>
#include <linux/vfs.h>
#include <linux/slab.h>
#include <linux/mutex.h>
@@ -22,6 +22,7 @@
*/
#include <linux/export.h>
+#include <linux/fs_type.h>
#include <linux/slab.h>
#include <linux/blkdev.h>
#include <linux/mount.h>
@@ -10,6 +10,7 @@
*/
#include <linux/fs.h>
+#include <linux/fs_type.h>
#include <linux/magic.h>
#include <linux/mount.h>
#include <linux/init.h>
@@ -21,6 +21,7 @@
* This file contains code for read/parsing the superblock.
*/
+#include <linux/fs_type.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/slab.h>
@@ -11,6 +11,7 @@
#include <linux/module.h>
#include <linux/fs.h>
+#include <linux/fs_type.h>
#include <linux/mount.h>
#include <linux/kobject.h>
#include <linux/namei.h>
@@ -14,6 +14,7 @@
* corresponding subsystems, but most of it is here.
*/
+#include <linux/fs_type.h>
#include <linux/init.h>
#include <linux/slab.h>
#include <linux/module.h>
@@ -37,6 +37,7 @@
#include "udfdecl.h"
#include <linux/blkdev.h>
+#include <linux/fs_type.h>
#include <linux/slab.h>
#include <linux/kernel.h>
#include <linux/module.h>
@@ -76,6 +76,7 @@
#include <linux/errno.h>
#include <linux/fs.h>
+#include <linux/fs_type.h>
#include <linux/slab.h>
#include <linux/time.h>
#include <linux/stat.h>
@@ -12,6 +12,7 @@
#include <linux/idr.h>
#include <linux/fs_parser.h>
+#include <linux/fs_type.h>
#include <linux/magic.h>
#include <linux/module.h>
#include <linux/nls.h>
@@ -48,6 +48,7 @@
#include <linux/magic.h>
#include <linux/fs_context.h>
#include <linux/fs_parser.h>
+#include <linux/fs_type.h>
static const struct super_operations xfs_super_operations;
@@ -4,6 +4,7 @@
*
* Copyright (C) 2019 Western Digital Corporation or its affiliates.
*/
+#include <linux/fs_type.h>
#include <linux/module.h>
#include <linux/pagemap.h>
#include <linux/magic.h>
@@ -15,6 +15,7 @@
#include <linux/rculist.h>
#include <linux/cgroupstats.h>
#include <linux/fs.h>
+#include <linux/fs_type.h>
#include <linux/seq_file.h>
#include <linux/kernfs.h>
#include <linux/jump_label.h>
@@ -53,6 +53,7 @@ struct bio;
struct io_comp_batch;
struct export_operations;
struct fiemap_extent_info;
+struct file_system_type;
struct hd_geometry;
struct iovec;
struct kiocb;
@@ -1168,17 +1169,7 @@ extern int send_sigurg(struct fown_struct *fown);
#define SB_I_RETIRED 0x00000800 /* superblock shouldn't be reused */
#define SB_I_NOUMASK 0x00001000 /* VFS does not apply umask */
-/* Possible states of 'frozen' field */
-enum {
- SB_UNFROZEN = 0, /* FS is unfrozen */
- SB_FREEZE_WRITE = 1, /* Writes, dir ops, ioctls frozen */
- SB_FREEZE_PAGEFAULT = 2, /* Page faults stopped as well */
- SB_FREEZE_FS = 3, /* For internal FS use (e.g. to stop
- * internal threads if needed) */
- SB_FREEZE_COMPLETE = 4, /* ->freeze_fs finished successfully */
-};
-
-#define SB_FREEZE_LEVELS (SB_FREEZE_COMPLETE - 1)
+#include <linux/sb_freeze.h>
struct sb_writers {
unsigned short frozen; /* Is sb frozen? */
@@ -2362,38 +2353,6 @@ int kiocb_modified(struct kiocb *iocb);
int sync_inode_metadata(struct inode *inode, int wait);
-struct file_system_type {
- const char *name;
- int fs_flags;
-#define FS_REQUIRES_DEV 1
-#define FS_BINARY_MOUNTDATA 2
-#define FS_HAS_SUBTYPE 4
-#define FS_USERNS_MOUNT 8 /* Can be mounted by userns root */
-#define FS_DISALLOW_NOTIFY_PERM 16 /* Disable fanotify permission events */
-#define FS_ALLOW_IDMAP 32 /* FS has been updated to handle vfs idmappings. */
-#define FS_RENAME_DOES_D_MOVE 32768 /* FS will handle d_move() during rename() internally. */
- 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 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;
-};
-
-#define MODULE_ALIAS_FS(NAME) MODULE_ALIAS("fs-" NAME)
-
extern struct dentry *mount_bdev(struct file_system_type *fs_type,
int flags, const char *dev_name, void *data,
int (*fill_super)(struct super_block *, void *, int));
@@ -2441,8 +2400,6 @@ struct super_block *sget_dev(struct fs_context *fc, dev_t dev);
BUG_ON(!(__file->f_op = (fops))); \
} while(0)
-extern int register_filesystem(struct file_system_type *);
-extern int unregister_filesystem(struct file_system_type *);
extern int vfs_statfs(const struct path *, struct kstatfs *);
extern int user_statfs(const char __user *, struct kstatfs *);
extern int fd_statfs(int, struct kstatfs *);
@@ -3115,9 +3072,6 @@ static inline int vfs_lstat(const char __user *name, struct kstat *stat)
extern const char *vfs_get_link(struct dentry *, struct delayed_call *);
extern int vfs_readlink(struct dentry *, char __user *, int);
-extern struct file_system_type *get_filesystem(struct file_system_type *fs);
-extern void put_filesystem(struct file_system_type *fs);
-extern struct file_system_type *get_fs_type(const char *name);
extern struct super_block *get_active_super(struct block_device *bdev);
extern void drop_super(struct super_block *sb);
extern void drop_super_exclusive(struct super_block *sb);
new file mode 100644
@@ -0,0 +1,50 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef _LINUX_FS_TYPE_H
+#define _LINUX_FS_TYPE_H
+#include <linux/types.h>
+#include <linux/lockdep_types.h>
+#include <linux/sb_freeze.h>
+
+struct dentry;
+struct fs_context;
+struct fs_parameter_spec;
+struct module;
+struct super_block;
+
+struct file_system_type {
+ const char *name;
+ int fs_flags;
+#define FS_REQUIRES_DEV 1
+#define FS_BINARY_MOUNTDATA 2
+#define FS_HAS_SUBTYPE 4
+#define FS_USERNS_MOUNT 8 /* Can be mounted by userns root */
+#define FS_DISALLOW_NOTIFY_PERM 16 /* Disable fanotify permission events */
+#define FS_ALLOW_IDMAP 32 /* FS has been updated to handle vfs idmappings. */
+#define FS_RENAME_DOES_D_MOVE 32768 /* FS will handle d_move() during rename() internally. */
+ 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 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;
+};
+
+#define MODULE_ALIAS_FS(NAME) MODULE_ALIAS("fs-" NAME)
+
+int register_filesystem(struct file_system_type *);
+int unregister_filesystem(struct file_system_type *);
+struct file_system_type *get_filesystem(struct file_system_type *);
+void put_filesystem(struct file_system_type *);
+struct file_system_type *get_fs_type(const char *);
+#endif
@@ -136,8 +136,6 @@ extern initcall_entry_t __con_initcall_start[], __con_initcall_end[];
/* Used for constructor calls. */
typedef void (*ctor_fn_t)(void);
-struct file_system_type;
-
/* Defined in init/main.c */
extern int do_one_initcall(initcall_t fn);
extern char __initdata boot_command_line[];
@@ -27,7 +27,6 @@ struct seq_file;
struct vm_area_struct;
struct vm_operations_struct;
struct super_block;
-struct file_system_type;
struct poll_table_struct;
struct fs_context;
new file mode 100644
@@ -0,0 +1,17 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef _LINUX_SB_FREEZE_H
+#define _LINUX_SB_FREEZE_H
+
+/* Possible states of 'frozen' field */
+enum {
+ SB_UNFROZEN = 0, /* FS is unfrozen */
+ SB_FREEZE_WRITE = 1, /* Writes, dir ops, ioctls frozen */
+ SB_FREEZE_PAGEFAULT = 2, /* Page faults stopped as well */
+ SB_FREEZE_FS = 3, /* For internal FS use (e.g. to stop
+ * internal threads if needed) */
+ SB_FREEZE_COMPLETE = 4, /* ->freeze_fs finished successfully */
+};
+
+#define SB_FREEZE_LEVELS (SB_FREEZE_COMPLETE - 1)
+
+#endif
@@ -15,6 +15,7 @@
#include <linux/initrd.h>
#include <linux/async.h>
#include <linux/fs_struct.h>
+#include <linux/fs_type.h>
#include <linux/slab.h>
#include <linux/ramfs.h>
#include <linux/shmem_fs.h>
@@ -19,6 +19,7 @@
#include <linux/file.h>
#include <linux/mount.h>
#include <linux/fs_context.h>
+#include <linux/fs_type.h>
#include <linux/namei.h>
#include <linux/sysctl.h>
#include <linux/poll.h>
@@ -16,6 +16,7 @@
#include <linux/fs.h>
#include <linux/fs_context.h>
#include <linux/fs_parser.h>
+#include <linux/fs_type.h>
#include <linux/kdev_t.h>
#include <linux/filter.h>
#include <linux/bpf.h>
@@ -56,6 +56,7 @@
#include <linux/nsproxy.h>
#include <linux/file.h>
#include <linux/fs_parser.h>
+#include <linux/fs_type.h>
#include <linux/sched/cputime.h>
#include <linux/sched/deadline.h>
#include <linux/psi.h>
@@ -17,6 +17,7 @@
#include <linux/slab.h>
#include <linux/spinlock.h>
#include <linux/fs.h>
+#include <linux/fs_type.h>
#include <linux/proc_fs.h>
#include <linux/pseudo_fs.h>
#include <linux/sched.h>
@@ -42,6 +42,7 @@
#include <linux/poll.h>
#include <linux/nmi.h>
#include <linux/fs.h>
+#include <linux/fs_type.h>
#include <linux/trace.h>
#include <linux/sched/clock.h>
#include <linux/sched/rt.h>
@@ -6,6 +6,7 @@
#include <linux/pipe_fs_i.h>
#include <linux/mount.h>
#include <linux/fs_struct.h>
+#include <linux/fs_type.h>
#include <linux/task_work.h>
#include <linux/usermode_driver.h>
@@ -21,6 +21,7 @@
#include <linux/kthread.h>
#include <linux/sched.h>
#include <linux/fs.h>
+#include <linux/fs_type.h>
#include <linux/miscdevice.h>
#include <linux/vmalloc.h>
#include <linux/slab.h>
@@ -7,6 +7,7 @@
#include <linux/mm.h>
#include <linux/fs.h>
+#include <linux/fs_type.h>
#include <linux/swap.h>
#include <linux/mount.h>
#include <linux/memfd.h>
@@ -22,6 +22,7 @@
*/
#include <linux/fs.h>
+#include <linux/fs_type.h>
#include <linux/init.h>
#include <linux/vfs.h>
#include <linux/mount.h>
@@ -260,7 +261,6 @@ static const struct inode_operations shmem_dir_inode_operations;
static const struct inode_operations shmem_special_inode_operations;
static const struct vm_operations_struct shmem_vm_ops;
static const struct vm_operations_struct shmem_anon_vm_ops;
-static struct file_system_type shmem_fs_type;
bool vma_is_anon_shmem(struct vm_area_struct *vma)
{
@@ -57,6 +57,7 @@
#include <linux/mm.h>
#include <linux/socket.h>
#include <linux/file.h>
+#include <linux/fs_type.h>
#include <linux/splice.h>
#include <linux/net.h>
#include <linux/interrupt.h>
@@ -15,6 +15,7 @@
#include <linux/pagemap.h>
#include <linux/mount.h>
#include <linux/fs_context.h>
+#include <linux/fs_type.h>
#include <linux/namei.h>
#include <linux/fsnotify.h>
#include <linux/kernel.h>
@@ -20,6 +20,7 @@
#include <linux/rcupdate.h>
#include <linux/fs.h>
#include <linux/fs_context.h>
+#include <linux/fs_type.h>
#include <linux/poll.h>
#include <linux/zstd.h>
#include <uapi/linux/major.h>
@@ -9,6 +9,7 @@
*/
#include <linux/fs.h>
+#include <linux/fs_type.h>
#include <linux/mount.h>
#include <linux/namei.h>
#include <uapi/linux/mount.h>
@@ -14,6 +14,7 @@
#include <linux/kobject.h>
#include <linux/fs.h>
#include <linux/fs_context.h>
+#include <linux/fs_type.h>
#include <linux/mount.h>
#include <linux/pagemap.h>
#include <linux/init.h>
@@ -11,6 +11,7 @@
#include <linux/list.h>
#include <linux/kernel_read_file.h>
#include <linux/fs.h>
+#include <linux/fs_type.h>
#include <linux/security.h>
#include <linux/magic.h>
#include <linux/parser.h>
@@ -18,6 +18,7 @@
#include <linux/vmalloc.h>
#include <linux/fs.h>
#include <linux/fs_context.h>
+#include <linux/fs_type.h>
#include <linux/mount.h>
#include <linux/mutex.h>
#include <linux/namei.h>
@@ -25,6 +25,7 @@
#include <linux/magic.h>
#include <linux/mount.h>
#include <linux/fs_context.h>
+#include <linux/fs_type.h>
#include "smack.h"
#define BEBITS (sizeof(__be32) * 8)
@@ -5,6 +5,7 @@
* Copyright (C) 2005-2011 NTT DATA CORPORATION
*/
+#include <linux/fs_type.h>
#include <linux/slab.h>
#include <uapi/linux/mount.h>
#include "common.h"
struct file_system_type is one of the things which could be extracted out of include/linux/fs.h easily. Drop some useless forward declarations and externs too. I remember sched.h was bloated but #include <linux/fs.h> on x86_64 allmodconfig somehow includes x86 segment descriptor stuff, MSR, something about irq numbers, all low level page stuff, memory zones, cpufreq, and task_struct definition with all sched.h the pieces. Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> --- Documentation/filesystems/vfs.rst | 6 +-- arch/powerpc/platforms/cell/spufs/inode.c | 1 arch/s390/hypfs/inode.c | 2 - arch/um/drivers/mconsole_kern.c | 1 arch/x86/kernel/cpu/resctrl/rdtgroup.c | 1 block/bdev.c | 1 drivers/android/binderfs.c | 1 drivers/base/devtmpfs.c | 1 drivers/dax/super.c | 1 drivers/dma-buf/dma-buf.c | 1 drivers/gpu/drm/drm_drv.c | 1 drivers/gpu/drm/i915/gem/i915_gemfs.c | 1 drivers/infiniband/hw/qib/qib_fs.c | 1 drivers/misc/cxl/api.c | 1 drivers/misc/ibmasm/ibmasmfs.c | 1 drivers/scsi/cxlflash/ocxl_hw.c | 1 drivers/usb/gadget/function/f_fs.c | 1 drivers/usb/gadget/legacy/inode.c | 1 drivers/xen/xenfs/super.c | 1 fs/9p/v9fs.c | 1 fs/9p/vfs_super.c | 1 fs/adfs/super.c | 1 fs/affs/super.c | 1 fs/afs/internal.h | 1 fs/afs/super.c | 1 fs/aio.c | 1 fs/anon_inodes.c | 1 fs/autofs/autofs_i.h | 1 fs/bcachefs/fs.c | 1 fs/befs/linuxvfs.c | 1 fs/bfs/inode.c | 1 fs/binfmt_misc.c | 3 - fs/btrfs/super.c | 1 fs/btrfs/tests/btrfs-tests.c | 1 fs/ceph/super.c | 1 fs/coda/inode.c | 1 fs/configfs/mount.c | 1 fs/cramfs/inode.c | 1 fs/dcache.c | 1 fs/debugfs/inode.c | 1 fs/devpts/inode.c | 1 fs/ecryptfs/main.c | 1 fs/efivarfs/super.c | 1 fs/efs/super.c | 1 fs/erofs/internal.h | 1 fs/erofs/super.c | 1 fs/exfat/super.c | 1 fs/ext2/super.c | 1 fs/ext4/super.c | 1 fs/f2fs/super.c | 1 fs/fat/namei_msdos.c | 1 fs/fat/namei_vfat.c | 1 fs/filesystems.c | 1 fs/freevxfs/vxfs_super.c | 1 fs/fs_context.c | 1 fs/fsopen.c | 1 fs/fuse/control.c | 1 fs/fuse/inode.c | 1 fs/fuse/virtio_fs.c | 1 fs/gfs2/ops_fstype.c | 1 fs/gfs2/super.h | 1 fs/hfs/super.c | 1 fs/hfsplus/super.c | 1 fs/hostfs/hostfs_kern.c | 1 fs/hpfs/super.c | 1 fs/hugetlbfs/inode.c | 1 fs/inode.c | 1 fs/internal.h | 1 fs/isofs/inode.c | 1 fs/jffs2/super.c | 1 fs/jfs/super.c | 2 - fs/libfs.c | 1 fs/minix/inode.c | 1 fs/namespace.c | 1 fs/nfs/fs_context.c | 1 fs/nfs/internal.h | 1 fs/nfs/nfs.h | 1 fs/nfsd/nfs4proc.c | 1 fs/nfsd/nfsctl.c | 1 fs/nilfs2/super.c | 1 fs/nsfs.c | 1 fs/ntfs/super.c | 1 fs/ntfs3/super.c | 1 fs/ocfs2/dlmfs/dlmfs.c | 1 fs/ocfs2/super.c | 1 fs/omfs/inode.c | 1 fs/openpromfs/inode.c | 1 fs/orangefs/orangefs-kernel.h | 1 fs/overlayfs/super.c | 1 fs/pipe.c | 1 fs/proc/proc_sysctl.c | 1 fs/proc/root.c | 1 fs/proc_namespace.c | 1 fs/pstore/inode.c | 1 fs/qnx4/inode.c | 1 fs/qnx6/inode.c | 1 fs/ramfs/inode.c | 1 fs/reiserfs/reiserfs.h | 1 fs/reiserfs/super.c | 1 fs/romfs/super.c | 1 fs/smb/client/cifsfs.c | 1 fs/smb/client/misc.c | 1 fs/squashfs/super.c | 1 fs/super.c | 1 fs/sysfs/mount.c | 1 fs/sysv/super.c | 1 fs/tracefs/inode.c | 1 fs/ubifs/super.c | 1 fs/udf/super.c | 1 fs/ufs/super.c | 1 fs/vboxsf/super.c | 1 fs/xfs/xfs_super.c | 1 fs/zonefs/super.c | 1 include/linux/cgroup.h | 1 include/linux/fs.h | 50 +----------------------------- include/linux/fs_type.h | 50 ++++++++++++++++++++++++++++++ include/linux/init.h | 2 - include/linux/kernfs.h | 1 include/linux/sb_freeze.h | 17 ++++++++++ init/do_mounts.c | 1 ipc/mqueue.c | 1 kernel/bpf/inode.c | 1 kernel/cgroup/cgroup.c | 1 kernel/resource.c | 1 kernel/trace/trace.c | 1 kernel/usermode_driver.c | 1 lib/test_kmod.c | 1 mm/secretmem.c | 1 mm/shmem.c | 2 - net/socket.c | 1 net/sunrpc/rpc_pipe.c | 1 security/apparmor/apparmorfs.c | 1 security/apparmor/mount.c | 1 security/inode.c | 1 security/integrity/ima/ima_policy.c | 1 security/selinux/selinuxfs.c | 1 security/smack/smackfs.c | 1 security/tomoyo/mount.c | 1 138 files changed, 202 insertions(+), 61 deletions(-)