1

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: Christoph Hellwig <hch@lst.de>
Reviewed-by: Jan Kara <jack@suse.cz>
Reviewed-by: Eric Biggers <ebiggers@google.com>
Link: https://lore.kernel.org/r/20230125065839.191256-3-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
Christoph Hellwig 2023-01-25 07:58:39 +01:00 committed by Jens Axboe
parent 439bc39b3c
commit 9636e650e1
14 changed files with 18 additions and 1 deletions

View File

@ -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"

View File

@ -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

View File

@ -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

View File

@ -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.

View File

@ -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.

View File

@ -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

View File

@ -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.

View File

@ -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.

View File

@ -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>.

View File

@ -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

View File

@ -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.

View File

@ -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

View File

@ -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

View File

@ -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