Hi, This "NFS DIRECT" series depends on the "NFSD DIRECT" series here: https://lore.kernel.org/linux-nfs/20250714224216.14329-1-snitzer@xxxxxxxxxx/ (for the benefit of nfsd_file_dio_alignment patch in this series) The first patch was posted as part of a LOCALIO revert series I posted a week or so ago, thankfully that series isn't needed thanks to Trond and Neil's efforts. BUT the first patch is needed, has Reviewed-by from Jeff and Neil and is marked for stable@. The biggest change in v2 is the introduction of O_DIRECT misaligned READ and WRITE handling for the benefit of LOCALIO. Please see patches 6 and 7 for more details. Changes since v1: - renamed nfs modparam from localio_O_DIRECT_align_misaligned_READ to localio_O_DIRECT_align_misaligned_IO (is used for misaligned READ and WRITE support in fs/nfs/direct.c) - added misaligned O_DIRECT handling for both READ and WRITE to fs/nfs/direct.c which in practice obviates LOCALIO's need to fallback to sending misaligned READs to NFSD. - But the 5th patch that adds LOCALIO support to fallback to NFSD is a useful backup mechanism (that will hopefully never be needed unless some fs/nfs/direct.c bug gets introduced in the future). Patch 5 also provides refactoring that is useful. Thanks, Mike Mike Snitzer (7): nfs/localio: avoid bouncing LOCALIO if nfs_client_is_local() nfs/localio: make trace_nfs_local_open_fh more useful nfs/localio: add nfsd_file_dio_alignment nfs/localio: refactor iocb initialization nfs/localio: fallback to NFSD for misaligned O_DIRECT READs nfs/direct: add misaligned READ handling nfs/direct: add misaligned WRITE handling fs/nfs/direct.c | 262 +++++++++++++++++++++++-- fs/nfs/flexfilelayout/flexfilelayout.c | 1 + fs/nfs/internal.h | 17 +- fs/nfs/localio.c | 231 ++++++++++++++-------- fs/nfs/nfstrace.h | 47 ++++- fs/nfs/pagelist.c | 22 ++- fs/nfsd/localio.c | 11 ++ include/linux/nfs_page.h | 1 + include/linux/nfslocalio.h | 2 + 9 files changed, 485 insertions(+), 109 deletions(-) -- 2.44.0