Re: [PATCH 2/2] fs: build the legacy direct I/O code conditionally

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed 25-01-23 07:58:39, Christoph Hellwig wrote:
> 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@xxxxxx>

Looks good to me. Feel free to add:

Reviewed-by: Jan Kara <jack@xxxxxxx>

								Honza

> ---
>  fs/Kconfig          | 4 ++++
>  fs/Makefile         | 3 ++-
>  fs/affs/Kconfig     | 1 +
>  fs/exfat/Kconfig    | 1 +
>  fs/ext2/Kconfig     | 1 +
>  fs/fat/Kconfig      | 1 +
>  fs/hfs/Kconfig      | 1 +
>  fs/hfsplus/Kconfig  | 1 +
>  fs/jfs/Kconfig      | 1 +
>  fs/nilfs2/Kconfig   | 1 +
>  fs/ntfs3/Kconfig    | 1 +
>  fs/ocfs2/Kconfig    | 1 +
>  fs/reiserfs/Kconfig | 1 +
>  fs/udf/Kconfig      | 1 +
>  14 files changed, 18 insertions(+), 1 deletion(-)
> 
> diff --git a/fs/Kconfig b/fs/Kconfig
> index 2685a4d0d35318..e99830c650336a 100644
> --- a/fs/Kconfig
> +++ b/fs/Kconfig
> @@ -18,6 +18,10 @@ config VALIDATE_FS_PARSER
>  config FS_IOMAP
>  	bool
>  
> +# old blockdev_direct_IO implementation.  Use iomap for new code instead
> +config LEGACY_DIRECT_IO
> +	bool
> +
>  if BLOCK
>  
>  source "fs/ext2/Kconfig"
> diff --git a/fs/Makefile b/fs/Makefile
> index 4dea17840761a0..606c029e1c9bc3 100644
> --- a/fs/Makefile
> +++ b/fs/Makefile
> @@ -19,13 +19,14 @@ obj-y :=	open.o read_write.o file_table.o super.o \
>  		kernel_read_file.o remap_range.o
>  
>  ifeq ($(CONFIG_BLOCK),y)
> -obj-y +=	buffer.o direct-io.o mpage.o
> +obj-y +=	buffer.o mpage.o
>  else
>  obj-y +=	no-block.o
>  endif
>  
>  obj-$(CONFIG_PROC_FS) += proc_namespace.o
>  
> +obj-$(CONFIG_LEGACY_DIRECT_IO)	+= direct-io.o
>  obj-y				+= notify/
>  obj-$(CONFIG_EPOLL)		+= eventpoll.o
>  obj-y				+= anon_inodes.o
> diff --git a/fs/affs/Kconfig b/fs/affs/Kconfig
> index eb9d0ab850cb1d..962b86374e1c15 100644
> --- a/fs/affs/Kconfig
> +++ b/fs/affs/Kconfig
> @@ -2,6 +2,7 @@
>  config AFFS_FS
>  	tristate "Amiga FFS file system support"
>  	depends on BLOCK
> +	select LEGACY_DIRECT_IO
>  	help
>  	  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
> diff --git a/fs/exfat/Kconfig b/fs/exfat/Kconfig
> index 5a65071b5ecf10..147edeb044691d 100644
> --- a/fs/exfat/Kconfig
> +++ b/fs/exfat/Kconfig
> @@ -3,6 +3,7 @@
>  config EXFAT_FS
>  	tristate "exFAT filesystem support"
>  	select NLS
> +	select LEGACY_DIRECT_IO
>  	help
>  	  This allows you to mount devices formatted with the exFAT file system.
>  	  exFAT is typically used on SD-Cards or USB sticks.
> diff --git a/fs/ext2/Kconfig b/fs/ext2/Kconfig
> index 1248ff4ef56254..77393fda99af09 100644
> --- a/fs/ext2/Kconfig
> +++ b/fs/ext2/Kconfig
> @@ -2,6 +2,7 @@
>  config EXT2_FS
>  	tristate "Second extended fs support"
>  	select FS_IOMAP
> +	select LEGACY_DIRECT_IO
>  	help
>  	  Ext2 is a standard Linux file system for hard disks.
>  
> diff --git a/fs/fat/Kconfig b/fs/fat/Kconfig
> index 238cc55f84c429..afe83b4e717280 100644
> --- a/fs/fat/Kconfig
> +++ b/fs/fat/Kconfig
> @@ -2,6 +2,7 @@
>  config FAT_FS
>  	tristate
>  	select NLS
> +	select LEGACY_DIRECT_IO
>  	help
>  	  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
> diff --git a/fs/hfs/Kconfig b/fs/hfs/Kconfig
> index 129926b5142d8f..d985066006d588 100644
> --- a/fs/hfs/Kconfig
> +++ b/fs/hfs/Kconfig
> @@ -3,6 +3,7 @@ config HFS_FS
>  	tristate "Apple Macintosh file system support"
>  	depends on BLOCK
>  	select NLS
> +	select LEGACY_DIRECT_IO
>  	help
>  	  If you say Y here, you will be able to mount Macintosh-formatted
>  	  floppy disks and hard drive partitions with full read-write access.
> diff --git a/fs/hfsplus/Kconfig b/fs/hfsplus/Kconfig
> index 7d4229aecec05b..8034e7827a690b 100644
> --- a/fs/hfsplus/Kconfig
> +++ b/fs/hfsplus/Kconfig
> @@ -4,6 +4,7 @@ config HFSPLUS_FS
>  	depends on BLOCK
>  	select NLS
>  	select NLS_UTF8
> +	select LEGACY_DIRECT_IO
>  	help
>  	  If you say Y here, you will be able to mount extended format
>  	  Macintosh-formatted hard drive partitions with full read-write access.
> diff --git a/fs/jfs/Kconfig b/fs/jfs/Kconfig
> index 05cb0e8e4382ee..51e856f0e4b8d6 100644
> --- a/fs/jfs/Kconfig
> +++ b/fs/jfs/Kconfig
> @@ -3,6 +3,7 @@ config JFS_FS
>  	tristate "JFS filesystem support"
>  	select NLS
>  	select CRC32
> +	select LEGACY_DIRECT_IO
>  	help
>  	  This is a port of IBM's Journaled Filesystem .  More information is
>  	  available in the file <file:Documentation/admin-guide/jfs.rst>.
> diff --git a/fs/nilfs2/Kconfig b/fs/nilfs2/Kconfig
> index 254d102e79c99b..7d59567465e121 100644
> --- a/fs/nilfs2/Kconfig
> +++ b/fs/nilfs2/Kconfig
> @@ -2,6 +2,7 @@
>  config NILFS2_FS
>  	tristate "NILFS2 file system support"
>  	select CRC32
> +	select LEGACY_DIRECT_IO
>  	help
>  	  NILFS2 is a log-structured file system (LFS) supporting continuous
>  	  snapshotting.  In addition to versioning capability of the entire
> diff --git a/fs/ntfs3/Kconfig b/fs/ntfs3/Kconfig
> index 6e4cbc48ab8e43..96cc236f7f7bd3 100644
> --- a/fs/ntfs3/Kconfig
> +++ b/fs/ntfs3/Kconfig
> @@ -2,6 +2,7 @@
>  config NTFS3_FS
>  	tristate "NTFS Read-Write file system support"
>  	select NLS
> +	select LEGACY_DIRECT_IO
>  	help
>  	  Windows OS native file system (NTFS) support up to NTFS version 3.1.
>  
> diff --git a/fs/ocfs2/Kconfig b/fs/ocfs2/Kconfig
> index 5d11380d872417..304d12186ccd38 100644
> --- a/fs/ocfs2/Kconfig
> +++ b/fs/ocfs2/Kconfig
> @@ -7,6 +7,7 @@ config OCFS2_FS
>  	select QUOTA
>  	select QUOTA_TREE
>  	select FS_POSIX_ACL
> +	select LEGACY_DIRECT_IO
>  	help
>  	  OCFS2 is a general purpose extent based shared disk cluster file
>  	  system with many similarities to ext3. It supports 64 bit inode
> diff --git a/fs/reiserfs/Kconfig b/fs/reiserfs/Kconfig
> index 33c8b0dd07a2e7..4d22ecfe0fab65 100644
> --- a/fs/reiserfs/Kconfig
> +++ b/fs/reiserfs/Kconfig
> @@ -2,6 +2,7 @@
>  config REISERFS_FS
>  	tristate "Reiserfs support (deprecated)"
>  	select CRC32
> +	select LEGACY_DIRECT_IO
>  	help
>  	  Reiserfs is deprecated and scheduled to be removed from the kernel
>  	  in 2025. If you are still using it, please migrate to another
> diff --git a/fs/udf/Kconfig b/fs/udf/Kconfig
> index 26e1a49f3ba795..82e8bfa2dfd989 100644
> --- a/fs/udf/Kconfig
> +++ b/fs/udf/Kconfig
> @@ -3,6 +3,7 @@ config UDF_FS
>  	tristate "UDF file system support"
>  	select CRC_ITU_T
>  	select NLS
> +	select LEGACY_DIRECT_IO
>  	help
>  	  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
> -- 
> 2.39.0
> 
-- 
Jan Kara <jack@xxxxxxxx>
SUSE Labs, CR



[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [NTFS 3]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [NTFS 3]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux