mbox series

[GIT,PULL] nfsd changes for 5.19

Message ID DDB7B172-52E3-4015-9BD2-9BCDE209E5AC@oracle.com (mailing list archive)
State New, archived
Headers show
Series [GIT,PULL] nfsd changes for 5.19 | expand

Pull-request

https://git.kernel.org/pub/scm/linux/kernel/git/cel/linux.git tags/nfsd-5.19

Message

Chuck Lever III May 26, 2022, 3:25 p.m. UTC
Hi Linus-

As of this writing, there is one known unresolved NFSD-related
issue, documented in this thread:

https://lore.kernel.org/linux-nfs/AM9P191MB16655E3D5F3611D1B40457F08EF49@AM9P191MB1665.EURP191.PROD.OUTLOOK.COM/

It appears to be rare and has been around for a while. Diagnosis
is ongoing.

Review for "NFSD: Instantiate a struct file when creating a
regular NFSv4 file" was conducted over the past few weeks,
culminating in this thread:

https://lore.kernel.org/linux-nfs/165247056822.6691.9087206893184705325.stgit@bazille.1015granger.net/T/#m4e81166848350ca51b3d0015133c3cc4d23ada2c

A v2 of 8/8 with the requested changes was posted and no further
comments were made. The v2 version appears in this pull request.

Despite the Commit Date on the last few patches in this pull
request, those patches have been in linux-next for a couple of
days at least.

I'm not aware of any merge conflicts at this time.


--- cut here ---

The following changes since commit 42226c989789d8da4af1de0c31070c96726d990c:

  Linux 5.18-rc7 (2022-05-15 18:08:58 -0700)

are available in the Git repository at:

  https://git.kernel.org/pub/scm/linux/kernel/git/cel/linux.git tags/nfsd-5.19

for you to fetch changes up to 08af54b3e5729bc1d56ad3190af811301bdc37a1:

  NFSD: nfsd_file_put() can sleep (2022-05-26 10:50:51 -0400)

----------------------------------------------------------------
NFSD 5.19 Release Notes

We introduce "courteous server" in this release. Previously NFSD
would purge open and lock state for an unresponsive client after
one lease period (typically 90 seconds). Now, after one lease
period, another client can open and lock those files and the
unresponsive client's lease is purged; otherwise if the unrespon-
sive client's open and lock state is uncontended, the server retains
that open and lock state for up to 24 hours, allowing the client's
workload to resume after a lengthy network partition.

A longstanding issue with NFSv4 file creation is also addressed.
Previously a file creation can fail internally, returning an error
to the client, but leave the newly created file in place as an
artifact. The file creation code path has been reorganized so that
internal failures and race conditions are less likely to result in
an unwanted file creation.

A fault injector has been added to help exercise paths that are run
during kernel metadata cache invalidation. These caches contain
information maintained by user space about exported filesystems.
Many of our test workloads do not trigger cache invalidation.

There is one patch that is needed to support PREEMPT_RT and a fix
for an ancient "sleep while spin-locked" splat that seems to have
become easier to hit since v5.18-rc3.

----------------------------------------------------------------
Chuck Lever (25):
      NFSD: Clean up nfsd_splice_actor()
      SUNRPC: Clean up svc_deferred_class trace events
      SUNRPC: Cache deferral injection
      SUNRPC: Make cache_req::thread_wait an unsigned long
      SUNRPC: Remove dead code in svc_tcp_release_rqst()
      SUNRPC: Remove svc_rqst::rq_xprt_hlen
      SUNRPC: Simplify synopsis of svc_pool_for_cpu()
      NFSD: Clean up nfsd3_proc_create()
      NFSD: Avoid calling fh_drop_write() twice in do_nfsd_create()
      NFSD: Refactor nfsd_create_setattr()
      NFSD: Refactor NFSv3 CREATE
      NFSD: Refactor NFSv4 OPEN(CREATE)
      NFSD: Remove do_nfsd_create()
      NFSD: Clean up nfsd_open_verified()
      NFSD: Instantiate a struct file when creating a regular NFSv4 file
      NFSD: Remove dprintk call sites from tail of nfsd4_open()
      NFSD: Fix whitespace
      NFSD: Move documenting comment for nfsd4_process_open2()
      NFSD: Trace filecache opens
      NFSD: Clean up the show_nf_flags() macro
      SUNRPC: Use RMW bitops in single-threaded hot paths
      NFSD: Fix possible sleep during nfsd4_release_lockowner()
      NFSD: Modernize nfsd4_release_lockowner()
      NFSD: Add documenting comment for nfsd4_release_lockowner()
      NFSD: nfsd_file_put() can sleep

Dai Ngo (7):
      NFSD: add courteous server support for thread with only delegation
      NFSD: add support for share reservation conflict to courteous server
      NFSD: move create/destroy of laundry_wq to init_nfsd and exit_nfsd
      fs/lock: add helper locks_owner_has_blockers to check for blockers
      fs/lock: add 2 callbacks to lock_manager_operations to resolve conflict
      NFSD: add support for lock conflict to courteous server
      NFSD: Show state of courtesy client in client info

Julian Schroeder (1):
      nfsd: destroy percpu stats counters after reply cache shutdown

Sebastian Andrzej Siewior (1):
      SUNRPC: Don't disable preemption while calling svc_pool_for_cpu().

Zhang Xiaoxu (2):
      nfsd: Unregister the cld notifier when laundry_wq create failed
      nfsd: Fix null-ptr-deref in nfsd_fill_super()

 Documentation/filesystems/locking.rst    |   4 ++
 fs/locks.c                               |  61 ++++++++++++++++-
 fs/nfsd/filecache.c                      |  54 +++++++++++++--
 fs/nfsd/filecache.h                      |   2 +
 fs/nfsd/nfs3proc.c                       | 141 ++++++++++++++++++++++++++++++++------
 fs/nfsd/nfs4proc.c                       | 264 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------
 fs/nfsd/nfs4state.c                      | 353 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------
 fs/nfsd/nfs4xdr.c                        |   2 +-
 fs/nfsd/nfscache.c                       |   2 +-
 fs/nfsd/nfsctl.c                         |  20 ++++--
 fs/nfsd/nfsd.h                           |   5 ++
 fs/nfsd/state.h                          |  31 +++++++++
 fs/nfsd/trace.h                          |  34 ++++++++--
 fs/nfsd/vfs.c                            | 255 +++++++++++++++-----------------------------------------------------
 fs/nfsd/vfs.h                            |  14 +---
 fs/nfsd/xdr4.h                           |   1 +
 fs/open.c                                |  42 ++++++++++++
 include/linux/fs.h                       |  12 ++++
 include/linux/sunrpc/cache.h             |   8 +--
 include/linux/sunrpc/svc.h               |   4 +-
 include/trace/events/sunrpc.h            |  12 ++--
 net/sunrpc/auth_gss/svcauth_gss.c        |   4 +-
 net/sunrpc/cache.c                       |  18 ++++-
 net/sunrpc/debugfs.c                     |   3 +
 net/sunrpc/fail.h                        |   2 +-
 net/sunrpc/svc.c                         |  24 ++++---
 net/sunrpc/svc_xprt.c                    |  17 ++---
 net/sunrpc/svcsock.c                     |  19 ++----
 net/sunrpc/xprtrdma/svc_rdma_recvfrom.c  |   1 -
 net/sunrpc/xprtrdma/svc_rdma_transport.c |   2 +-
 30 files changed, 985 insertions(+), 426 deletions(-)

--
Chuck Lever

Comments

pr-tracker-bot@kernel.org May 27, 2022, 4:06 a.m. UTC | #1
The pull request you sent on Thu, 26 May 2022 15:25:00 +0000:

> https://git.kernel.org/pub/scm/linux/kernel/git/cel/linux.git tags/nfsd-5.19

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/6d29d7fe4f0c1e81c39622cce45cd397b23dc48f

Thank you!