The following changes since commit 1c23f9e627a7b412978b4e852793c5e3c3efc555: Linux 6.0-rc2 (2022-08-21 17:32:54 -0700) are available in the Git repository at: https://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/linux.git tags/statx-dioalign-for-linus for you to fetch changes up to 61a223df421f698c253143014cfd384255b3cf1e: xfs: support STATX_DIOALIGN (2022-09-11 19:47:12 -0500) ---------------------------------------------------------------- Make statx() support reporting direct I/O (DIO) alignment information. This provides a generic interface for userspace programs to determine whether a file supports DIO, and if so with what alignment restrictions. Specifically, STATX_DIOALIGN works on block devices, and on regular files when their containing filesystem has implemented support. An interface like this has been requested for years, since the conditions for when DIO is supported in Linux have gotten increasingly complex over time. Today, DIO support and alignment requirements can be affected by various filesystem features such as multi-device support, data journalling, inline data, encryption, verity, compression, checkpoint disabling, log-structured mode, etc. Further complicating things, Linux v6.0 relaxed the traditional rule of DIO needing to be aligned to the block device's logical block size; now user buffers (but not file offsets) only need to be aligned to the DMA alignment. The approach of uplifting the XFS specific ioctl XFS_IOC_DIOINFO was discarded in favor of creating a clean new interface with statx(). For more information, see the individual commits and the man page update https://lore.kernel.org/r/20220722074229.148925-1-ebiggers@xxxxxxxxxx. ---------------------------------------------------------------- Eric Biggers (8): statx: add direct I/O alignment information vfs: support STATX_DIOALIGN on block devices fscrypt: change fscrypt_dio_supported() to prepare for STATX_DIOALIGN ext4: support STATX_DIOALIGN f2fs: move f2fs_force_buffered_io() into file.c f2fs: simplify f2fs_force_buffered_io() f2fs: support STATX_DIOALIGN xfs: support STATX_DIOALIGN block/bdev.c | 23 ++++++++++++++++++++++ fs/crypto/inline_crypt.c | 49 +++++++++++++++++++++++------------------------ fs/ext4/ext4.h | 1 + fs/ext4/file.c | 37 ++++++++++++++++++++++++----------- fs/ext4/inode.c | 37 +++++++++++++++++++++++++++++++++++ fs/f2fs/f2fs.h | 40 -------------------------------------- fs/f2fs/file.c | 43 ++++++++++++++++++++++++++++++++++++++++- fs/stat.c | 14 ++++++++++++++ fs/xfs/xfs_iops.c | 10 ++++++++++ include/linux/blkdev.h | 4 ++++ include/linux/fscrypt.h | 7 ++----- include/linux/stat.h | 2 ++ include/uapi/linux/stat.h | 4 +++- 13 files changed, 188 insertions(+), 83 deletions(-)