Commit 9636e650 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Jens Axboe

fs: build the legacy direct I/O code conditionally

Add a new LEGACY_DIRECT_IO config symbol that is only selected by the
file systems that still use the legacy blockdev_direct_IO code, so that
kernels without support for those file systems don't need to build the
code.
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarJan Kara <jack@suse.cz>
Reviewed-by: default avatarEric Biggers <ebiggers@google.com>
Link: https://lore.kernel.org/r/20230125065839.191256-3-hch@lst.deSigned-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 439bc39b
...@@ -18,6 +18,10 @@ config VALIDATE_FS_PARSER ...@@ -18,6 +18,10 @@ config VALIDATE_FS_PARSER
config FS_IOMAP config FS_IOMAP
bool bool
# old blockdev_direct_IO implementation. Use iomap for new code instead
config LEGACY_DIRECT_IO
bool
if BLOCK if BLOCK
source "fs/ext2/Kconfig" source "fs/ext2/Kconfig"
......
...@@ -19,13 +19,14 @@ obj-y := open.o read_write.o file_table.o super.o \ ...@@ -19,13 +19,14 @@ obj-y := open.o read_write.o file_table.o super.o \
kernel_read_file.o remap_range.o kernel_read_file.o remap_range.o
ifeq ($(CONFIG_BLOCK),y) ifeq ($(CONFIG_BLOCK),y)
obj-y += buffer.o direct-io.o mpage.o obj-y += buffer.o mpage.o
else else
obj-y += no-block.o obj-y += no-block.o
endif endif
obj-$(CONFIG_PROC_FS) += proc_namespace.o obj-$(CONFIG_PROC_FS) += proc_namespace.o
obj-$(CONFIG_LEGACY_DIRECT_IO) += direct-io.o
obj-y += notify/ obj-y += notify/
obj-$(CONFIG_EPOLL) += eventpoll.o obj-$(CONFIG_EPOLL) += eventpoll.o
obj-y += anon_inodes.o obj-y += anon_inodes.o
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
config AFFS_FS config AFFS_FS
tristate "Amiga FFS file system support" tristate "Amiga FFS file system support"
depends on BLOCK depends on BLOCK
select LEGACY_DIRECT_IO
help help
The Fast File System (FFS) is the common file system used on hard The Fast File System (FFS) is the common file system used on hard
disks by Amiga(tm) systems since AmigaOS Version 1.3 (34.20). Say Y disks by Amiga(tm) systems since AmigaOS Version 1.3 (34.20). Say Y
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
config EXFAT_FS config EXFAT_FS
tristate "exFAT filesystem support" tristate "exFAT filesystem support"
select NLS select NLS
select LEGACY_DIRECT_IO
help help
This allows you to mount devices formatted with the exFAT file system. This allows you to mount devices formatted with the exFAT file system.
exFAT is typically used on SD-Cards or USB sticks. exFAT is typically used on SD-Cards or USB sticks.
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
config EXT2_FS config EXT2_FS
tristate "Second extended fs support" tristate "Second extended fs support"
select FS_IOMAP select FS_IOMAP
select LEGACY_DIRECT_IO
help help
Ext2 is a standard Linux file system for hard disks. Ext2 is a standard Linux file system for hard disks.
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
config FAT_FS config FAT_FS
tristate tristate
select NLS select NLS
select LEGACY_DIRECT_IO
help help
If you want to use one of the FAT-based file systems (the MS-DOS and If you want to use one of the FAT-based file systems (the MS-DOS and
VFAT (Windows 95) file systems), then you must say Y or M here VFAT (Windows 95) file systems), then you must say Y or M here
......
...@@ -3,6 +3,7 @@ config HFS_FS ...@@ -3,6 +3,7 @@ config HFS_FS
tristate "Apple Macintosh file system support" tristate "Apple Macintosh file system support"
depends on BLOCK depends on BLOCK
select NLS select NLS
select LEGACY_DIRECT_IO
help help
If you say Y here, you will be able to mount Macintosh-formatted If you say Y here, you will be able to mount Macintosh-formatted
floppy disks and hard drive partitions with full read-write access. floppy disks and hard drive partitions with full read-write access.
......
...@@ -4,6 +4,7 @@ config HFSPLUS_FS ...@@ -4,6 +4,7 @@ config HFSPLUS_FS
depends on BLOCK depends on BLOCK
select NLS select NLS
select NLS_UTF8 select NLS_UTF8
select LEGACY_DIRECT_IO
help help
If you say Y here, you will be able to mount extended format If you say Y here, you will be able to mount extended format
Macintosh-formatted hard drive partitions with full read-write access. Macintosh-formatted hard drive partitions with full read-write access.
......
...@@ -3,6 +3,7 @@ config JFS_FS ...@@ -3,6 +3,7 @@ config JFS_FS
tristate "JFS filesystem support" tristate "JFS filesystem support"
select NLS select NLS
select CRC32 select CRC32
select LEGACY_DIRECT_IO
help help
This is a port of IBM's Journaled Filesystem . More information is This is a port of IBM's Journaled Filesystem . More information is
available in the file <file:Documentation/admin-guide/jfs.rst>. available in the file <file:Documentation/admin-guide/jfs.rst>.
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
config NILFS2_FS config NILFS2_FS
tristate "NILFS2 file system support" tristate "NILFS2 file system support"
select CRC32 select CRC32
select LEGACY_DIRECT_IO
help help
NILFS2 is a log-structured file system (LFS) supporting continuous NILFS2 is a log-structured file system (LFS) supporting continuous
snapshotting. In addition to versioning capability of the entire snapshotting. In addition to versioning capability of the entire
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
config NTFS3_FS config NTFS3_FS
tristate "NTFS Read-Write file system support" tristate "NTFS Read-Write file system support"
select NLS select NLS
select LEGACY_DIRECT_IO
help help
Windows OS native file system (NTFS) support up to NTFS version 3.1. Windows OS native file system (NTFS) support up to NTFS version 3.1.
......
...@@ -7,6 +7,7 @@ config OCFS2_FS ...@@ -7,6 +7,7 @@ config OCFS2_FS
select QUOTA select QUOTA
select QUOTA_TREE select QUOTA_TREE
select FS_POSIX_ACL select FS_POSIX_ACL
select LEGACY_DIRECT_IO
help help
OCFS2 is a general purpose extent based shared disk cluster file OCFS2 is a general purpose extent based shared disk cluster file
system with many similarities to ext3. It supports 64 bit inode system with many similarities to ext3. It supports 64 bit inode
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
config REISERFS_FS config REISERFS_FS
tristate "Reiserfs support (deprecated)" tristate "Reiserfs support (deprecated)"
select CRC32 select CRC32
select LEGACY_DIRECT_IO
help help
Reiserfs is deprecated and scheduled to be removed from the kernel Reiserfs is deprecated and scheduled to be removed from the kernel
in 2025. If you are still using it, please migrate to another in 2025. If you are still using it, please migrate to another
......
...@@ -3,6 +3,7 @@ config UDF_FS ...@@ -3,6 +3,7 @@ config UDF_FS
tristate "UDF file system support" tristate "UDF file system support"
select CRC_ITU_T select CRC_ITU_T
select NLS select NLS
select LEGACY_DIRECT_IO
help help
This is a file system used on some CD-ROMs and DVDs. Since the This is a file system used on some CD-ROMs and DVDs. Since the
file system is supported by multiple operating systems and is more file system is supported by multiple operating systems and is more
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment