[PATCH v2 0/7] NFS DIRECT: handle misaligned READ and WRITE for LOCALIO

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

 



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





[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux