lkml.org 
[lkml]   [2022]   [Aug]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[PATCH v5 0/8] make statx() return DIO alignment information
    Date
    This patchset makes the statx() system call return direct I/O (DIO)
    alignment information. This allows userspace to easily determine
    whether a file supports DIO, and if so with what alignment restrictions.

    Patch 1 adds the basic VFS support for STATX_DIOALIGN. Patch 2 wires it
    up for all block device files. The remaining patches wire it up for
    regular files on ext4, f2fs, and xfs. Support for regular files on
    other filesystems can be added later.

    I've also written a man-pages patch, which I sent separately:
    https://lore.kernel.org/r/20220722074229.148925-1-ebiggers@kernel.org

    Note, f2fs has a corner case where DIO reads are allowed but not DIO
    writes. The proposed statx fields can't represent this. The current
    proposal just reports that DIO is unsupported in this case.

    This patchset applies to v6.0-rc2.

    Changed in v5:
    - Accounted for the DIO changes in 6.0 by setting dio_mem_align to
    the DMA alignment instead of the logical block size where needed.

    - Dropped the patch "f2fs: don't allow DIO reads but not DIO writes".

    - Added some Reviewed-by and Acked-by tags.

    Changed in v4:
    - Added xfs support.

    - Moved the helper function for block devices into block/bdev.c.

    - Adjusted the ext4 patch to not introduce a bug where misaligned DIO
    starts being allowed on encrypted files when it gets combined with
    the patch "iomap: add support for dma aligned direct-io" that is
    queued in the block tree for 5.20.

    - Made a simplification in fscrypt_dio_supported().

    Changed in v3:
    - Dropped the stx_offset_align_optimal field, since its purpose
    wasn't clearly distinguished from the existing stx_blksize.

    - Renamed STATX_IOALIGN to STATX_DIOALIGN, to reflect the new focus
    on DIO only.

    - Similarly, renamed stx_{mem,offset}_align_dio to
    stx_dio_{mem,offset}_align, to reflect the new focus on DIO only.

    - Wired up STATX_DIOALIGN on block device files.

    Changed in v2:
    - No changes.

    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(-)


    base-commit: 1c23f9e627a7b412978b4e852793c5e3c3efc555
    --
    2.37.2

    \
     
     \ /
      Last update: 2022-08-27 09:03    [W:3.938 / U:0.076 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site