[PATCH 00/10] Write verifier fixes and clean-ups

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

 



Hi-

After a little inebriated holiday consideration, I've come to the
conclusion that returning zero verifiers to STABLE WRITE requests
as reported by Rick Macklem here:

https://lore.kernel.org/linux-nfs/YQXPR0101MB096857EEACF04A6DF1FC6D9BDD749@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/T/

is a regression because at least one NFS client noticed the
behavior and required a code change to continue interoperating
with the Linux NFS server. The behavior also seems contrary to
spec language in RFC 8881 and RFC 1813.

To address this, I propose the following (during v5.17 merge
window):

1. Roll back
  "nfsd: Add a tracepoint for errors in nfsd4_clone_file_range()"
  "nfsd: Replace use of rwsem with errseq_t"

2. Apply
  "NFSD: Fix verifier returned in stable WRITEs" first so
  that it has a greater opportunity to be back-ported cleanly
  to recent kernels

3. Re-apply patches rolled back in step 1 along with additional
  clean-ups.

Review will show that not all of these new clean-ups are necessary,
but they do eliminate some technical debt that has accrued over the
past few years in this area.

I'm interested in review, comments, or objections.

---

Chuck Lever (8):
      NFSD: Fix verifier returned in stable WRITEs
      NFSD: Clean up nfsd_vfs_write()
      NFSD: De-duplicate net_generic(SVC_NET(rqstp), nfsd_net_id)
      NFSD: De-duplicate net_generic(nf->nf_net, nfsd_net_id)
      NFSD: Write verifier might go backwards
      NFSD: Clean up the nfsd_net::nfssvc_boot field
      NFSD: Rename boot verifier functions
      NFSD: Trace boot verifier resets

Trond Myklebust (2):
      nfsd: Replace use of rwsem with errseq_t
      nfsd: Add a tracepoint for errors in nfsd4_clone_file_range()


 fs/nfsd/filecache.c |   3 +-
 fs/nfsd/filecache.h |   1 -
 fs/nfsd/netns.h     |  11 ++---
 fs/nfsd/nfs4proc.c  |  20 +++++----
 fs/nfsd/nfsctl.c    |   3 +-
 fs/nfsd/nfssvc.c    |  61 ++++++++++++++++++--------
 fs/nfsd/trace.h     |  78 +++++++++++++++++++++++++++++++++
 fs/nfsd/vfs.c       | 104 ++++++++++++++++++++++----------------------
 fs/nfsd/vfs.h       |   3 +-
 9 files changed, 195 insertions(+), 89 deletions(-)

--
Chuck Lever



[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