mbox series

[GIT,PULL] NFSD changes for v6.13

Message ID Z0Xg7A1J/CkYiENR@tissot.1015granger.net (mailing list archive)
State New
Headers show
Series [GIT,PULL] NFSD changes for v6.13 | expand

Pull-request

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

Message

Chuck Lever Nov. 26, 2024, 2:53 p.m. UTC
Hi Linus -

The following changes since commit 2d5404caa8c7bb5c4e0435f94b28834ae5456623:

  Linux 6.12-rc7 (2024-11-10 14:19:35 -0800)

are available in the Git repository at:

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

for you to fetch changes up to 583772eec7b0096516a8ee8b1cc31401894f1e3a:

  nfsd: allow for up to 32 callback session slots (2024-11-18 20:23:13 -0500)

----------------------------------------------------------------
NFSD 6.13 Release Notes

Jeff Layton contributed a scalability improvement to NFSD's NFSv4
backchannel session implementation. This improvement is intended to
increase the rate at which NFSD can safely recall NFSv4 delegations
from clients, to avoid the need to revoke them. Revoking requires
a slow state recovery process.

A wide variety of bug fixes and other incremental improvements make
up the bulk of commits in this series. As always I am grateful to
the NFSD contributors, reviewers, testers, and bug reporters who
participated during this cycle.

----------------------------------------------------------------
Al Viro (1):
      nfsd: get rid of include ../internal.h

Chuck Lever (49):
      NFSD: Prevent a potential integer overflow
      svcrdma: Address an integer overflow
      NFSD: Remove unused function parameter
      xdrgen: Exit status should be zero on success
      xdrgen: Clean up type_specifier
      xdrgen: Rename "variable-length strings"
      xdrgen: Rename enum's declaration Jinja2 template
      xdrgen: Rename "enum yada" types as just "yada"
      xdrgen: Implement big-endian enums
      xdrgen: Refactor transformer arms
      xdrgen: Track constant values
      xdrgen: Keep track of on-the-wire data type widths
      xdrgen: XDR widths for enum types
      xdrgen: XDR width for fixed-length opaque
      xdrgen: XDR width for variable-length opaque
      xdrgen: XDR width for a string
      xdrgen: XDR width for fixed-length array
      xdrgen: XDR width for variable-length array
      xdrgen: XDR width for optional_data type
      xdrgen: XDR width for typedef
      xdrgen: XDR width for struct types
      xdrgen: XDR width for pointer types
      xdrgen: XDR width for union types
      xdrgen: Add generator code for XDR width macros
      xdrgen: emit maxsize macros
      xdrgen: Add a utility for extracting XDR from RFCs
      NFSD: Replace use of NFSD_MAY_LOCK in nfsd4_lock()
      NFSD: Remove dead code in nfsd4_create_session()
      NFSD: Remove a never-true comparison
      NFSD: Prevent NULL dereference in nfsd4_process_cb_update()
      NFSD: Remove unused results in nfsd4_encode_pathname4()
      NFSD: Remove unused values from nfsd4_encode_components_esc()
      NFSD: Cap the number of bytes copied by nfs4_reset_recoverydir()
      lockd: Remove unused typedef
      lockd: Remove unnecessary memset()
      lockd: Remove some snippets of unfinished code
      lockd: Remove unused parameter to nlmsvc_testlock()
      lockd: Remove unneeded initialization of file_lock::c.flc_flags
      xdrgen: Remove tracepoint call site
      xdrgen: Remove check for "nfs_ok" in C templates
      xdrgen: Update the files included in client-side source code
      xdrgen: Remove program_stat_to_errno() call sites
      NFSD: Add a tracepoint to record canceled async COPY operations
      NFSD: Fix nfsd4_shutdown_copy()
      NFSD: Free async copy information in nfsd4_cb_offload_release()
      NFSD: Handle an NFS4ERR_DELAY response to CB_OFFLOAD
      NFSD: Block DESTROY_CLIENTID only when there are ongoing async COPY operations
      NFSD: Add a laundromat reaper for async copy state
      NFSD: Add nfsd4_copy time-to-live

Jeff Layton (8):
      nfsd: drop inode parameter from nfsd4_change_attribute()
      nfsd: drop the ncf_cb_bmap field
      nfsd: drop the nfsd4_fattr_args "size" field
      nfsd: have nfsd4_deleg_getattr_conflict pass back write deleg pointer
      nfsd: new tracepoint for after op_func in compound processing
      nfsd: remove nfsd4_session->se_bchannel
      nfsd: make nfsd4_session->se_flags a bool
      nfsd: allow for up to 32 callback session slots

Julia Lawall (1):
      nfsd: replace call_rcu by kfree_rcu for simple kmem_cache_free callback

Mike Snitzer (1):
      nfs_common: must not hold RCU while calling nfsd_file_put_local

NeilBrown (3):
      nfsd: refine and rename NFSD_MAY_LOCK
      nfsd: Don't fail OP_SETCLIENTID when there are too many clients.
      nfsd: make use of warning provided by refcount_t

Pali Rohár (3):
      lockd: Fix comment about NLMv3 backwards compatibility
      nfsd: Fill NFSv4.1 server implementation fields in OP_EXCHANGE_ID response
      nfsd: Fix NFSD_MAY_BYPASS_GSS and NFSD_MAY_BYPASS_GSS_ON_ROOT

Thorsten Blum (1):
      NFSD: Remove unnecessary posix_acl_entry pointer initialization

Yang Erkun (4):
      nfsd: make sure exp active before svc_export_show
      SUNRPC: make sure cache entry active before cache_show
      nfsd: release svc_expkey/svc_export with rcu_work
      nfsd: fix nfs4_openowner leak when concurrent nfsd4_open occur

Ye Bin (1):
      svcrdma: fix miss destroy percpu_counter in svc_rdma_proc_init()

 MAINTAINERS                                                                                      |   1 +
 fs/lockd/clntxdr.c                                                                               |   5 ++-
 fs/lockd/svc4proc.c                                                                              |  20 +++------
 fs/lockd/svclock.c                                                                               |   2 +-
 fs/lockd/svcproc.c                                                                               |  15 +------
 fs/lockd/xdr4.c                                                                                  |   2 -
 fs/nfs_common/nfslocalio.c                                                                       |   8 ++--
 fs/nfsd/export.c                                                                                 |  57 ++++++++++++++++++++----
 fs/nfsd/export.h                                                                                 |   7 +--
 fs/nfsd/filecache.c                                                                              |  19 ++++----
 fs/nfsd/filecache.h                                                                              |   2 +-
 fs/nfsd/lockd.c                                                                                  |  13 +++++-
 fs/nfsd/nfs4acl.c                                                                                |   2 -
 fs/nfsd/nfs4callback.c                                                                           | 139 +++++++++++++++++++++++++++++++++++++++++++----------------
 fs/nfsd/nfs4proc.c                                                                               | 103 +++++++++++++++++++++++++++++++++++++++-----
 fs/nfsd/nfs4recover.c                                                                            |   3 +-
 fs/nfsd/nfs4state.c                                                                              | 127 +++++++++++++++++++++++++++++++++++-------------------
 fs/nfsd/nfs4xdr.c                                                                                |  73 ++++++++++++++++++-------------
 fs/nfsd/nfsfh.c                                                                                  |  41 ++++++++++--------
 fs/nfsd/nfsfh.h                                                                                  |   3 +-
 fs/nfsd/state.h                                                                                  |  40 +++++++++++------
 fs/nfsd/trace.h                                                                                  |  29 +++++++++++--
 fs/nfsd/vfs.c                                                                                    |  26 +++--------
 fs/nfsd/vfs.h                                                                                    |   6 +--
 fs/nfsd/xdr4.h                                                                                   |   8 ++++
 include/linux/lockd/lockd.h                                                                      |   6 +--
 include/linux/lockd/xdr.h                                                                        |   2 -
 include/linux/nfslocalio.h                                                                       |  18 ++++++--
 include/linux/sunrpc/xdr.h                                                                       |  21 +++++++++
 include/linux/sunrpc/xdrgen/_defs.h                                                              |   9 ++++
 net/sunrpc/cache.c                                                                               |   4 +-
 net/sunrpc/xprtrdma/svc_rdma.c                                                                   |  19 +++++---
 net/sunrpc/xprtrdma/svc_rdma_recvfrom.c                                                          |   8 +++-
 tools/net/sunrpc/extract.sh                                                                      |  11 +++++
 tools/net/sunrpc/xdrgen/README                                                                   |  17 ++++++++
 tools/net/sunrpc/xdrgen/generators/__init__.py                                                   |   4 ++
 tools/net/sunrpc/xdrgen/generators/enum.py                                                       |  30 ++++++++++---
 tools/net/sunrpc/xdrgen/generators/pointer.py                                                    |  26 ++++++++---
 tools/net/sunrpc/xdrgen/generators/struct.py                                                     |  26 ++++++++---
 tools/net/sunrpc/xdrgen/generators/typedef.py                                                    |  28 +++++++++---
 tools/net/sunrpc/xdrgen/generators/union.py                                                      |  52 +++++++++++++++++-----
 tools/net/sunrpc/xdrgen/grammars/xdr.lark                                                        |   6 ++-
 tools/net/sunrpc/xdrgen/subcmds/definitions.py                                                   |  24 +++++++++--
 tools/net/sunrpc/xdrgen/subcmds/source.py                                                        |   3 +-
 tools/net/sunrpc/xdrgen/templates/C/enum/declaration/close.j2                                    |   4 --
 tools/net/sunrpc/xdrgen/templates/C/enum/declaration/enum.j2                                     |   4 ++
 tools/net/sunrpc/xdrgen/templates/C/enum/decoder/enum.j2                                         |   2 +-
 tools/net/sunrpc/xdrgen/templates/C/enum/decoder/enum_be.j2                                      |  14 ++++++
 tools/net/sunrpc/xdrgen/templates/C/enum/definition/close.j2                                     |   1 +
 tools/net/sunrpc/xdrgen/templates/C/enum/definition/close_be.j2                                  |   3 ++
 tools/net/sunrpc/xdrgen/templates/C/enum/encoder/enum.j2                                         |   2 +-
 tools/net/sunrpc/xdrgen/templates/C/enum/encoder/enum_be.j2                                      |  14 ++++++
 tools/net/sunrpc/xdrgen/templates/C/enum/maxsize/enum.j2                                         |   2 +
 tools/net/sunrpc/xdrgen/templates/C/pointer/decoder/{variable_length_string.j2 => string.j2}     |   0
 tools/net/sunrpc/xdrgen/templates/C/pointer/definition/{variable_length_string.j2 => string.j2}  |   0
 tools/net/sunrpc/xdrgen/templates/C/pointer/encoder/{variable_length_string.j2 => string.j2}     |   0
 tools/net/sunrpc/xdrgen/templates/C/pointer/maxsize/pointer.j2                                   |   3 ++
 tools/net/sunrpc/xdrgen/templates/C/program/decoder/result.j2                                    |   4 --
 tools/net/sunrpc/xdrgen/templates/C/source_top/client.j2                                         |   9 +++-
 tools/net/sunrpc/xdrgen/templates/C/struct/decoder/{variable_length_string.j2 => string.j2}      |   0
 tools/net/sunrpc/xdrgen/templates/C/struct/definition/{variable_length_string.j2 => string.j2}   |   0
 tools/net/sunrpc/xdrgen/templates/C/struct/encoder/{variable_length_string.j2 => string.j2}      |   0
 tools/net/sunrpc/xdrgen/templates/C/struct/maxsize/struct.j2                                     |   3 ++
 tools/net/sunrpc/xdrgen/templates/C/typedef/declaration/{variable_length_string.j2 => string.j2} |   0
 tools/net/sunrpc/xdrgen/templates/C/typedef/decoder/{variable_length_string.j2 => string.j2}     |   0
 tools/net/sunrpc/xdrgen/templates/C/typedef/definition/{variable_length_string.j2 => string.j2}  |   0
 tools/net/sunrpc/xdrgen/templates/C/typedef/encoder/{variable_length_string.j2 => string.j2}     |   0
 tools/net/sunrpc/xdrgen/templates/C/typedef/maxsize/basic.j2                                     |   3 ++
 tools/net/sunrpc/xdrgen/templates/C/typedef/maxsize/fixed_length_opaque.j2                       |   2 +
 tools/net/sunrpc/xdrgen/templates/C/typedef/maxsize/string.j2                                    |   2 +
 tools/net/sunrpc/xdrgen/templates/C/typedef/maxsize/variable_length_array.j2                     |   2 +
 tools/net/sunrpc/xdrgen/templates/C/typedef/maxsize/variable_length_opaque.j2                    |   2 +
 tools/net/sunrpc/xdrgen/templates/C/union/decoder/case_spec_be.j2                                |   2 +
 tools/net/sunrpc/xdrgen/templates/C/union/decoder/{variable_length_string.j2 => string.j2}       |   0
 tools/net/sunrpc/xdrgen/templates/C/union/encoder/case_spec_be.j2                                |   2 +
 tools/net/sunrpc/xdrgen/templates/C/union/maxsize/union.j2                                       |   3 ++
 tools/net/sunrpc/xdrgen/xdr_ast.py                                                               | 311 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------
 tools/net/sunrpc/xdrgen/xdrgen                                                                   |   4 +-
 78 files changed, 1115 insertions(+), 348 deletions(-)
 create mode 100755 tools/net/sunrpc/extract.sh
 delete mode 100644 tools/net/sunrpc/xdrgen/templates/C/enum/declaration/close.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/enum/declaration/enum.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/enum/decoder/enum_be.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/enum/definition/close_be.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/enum/encoder/enum_be.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/enum/maxsize/enum.j2
 rename tools/net/sunrpc/xdrgen/templates/C/pointer/decoder/{variable_length_string.j2 => string.j2} (100%)
 rename tools/net/sunrpc/xdrgen/templates/C/pointer/definition/{variable_length_string.j2 => string.j2} (100%)
 rename tools/net/sunrpc/xdrgen/templates/C/pointer/encoder/{variable_length_string.j2 => string.j2} (100%)
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/maxsize/pointer.j2
 rename tools/net/sunrpc/xdrgen/templates/C/struct/decoder/{variable_length_string.j2 => string.j2} (100%)
 rename tools/net/sunrpc/xdrgen/templates/C/struct/definition/{variable_length_string.j2 => string.j2} (100%)
 rename tools/net/sunrpc/xdrgen/templates/C/struct/encoder/{variable_length_string.j2 => string.j2} (100%)
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/maxsize/struct.j2
 rename tools/net/sunrpc/xdrgen/templates/C/typedef/declaration/{variable_length_string.j2 => string.j2} (100%)
 rename tools/net/sunrpc/xdrgen/templates/C/typedef/decoder/{variable_length_string.j2 => string.j2} (100%)
 rename tools/net/sunrpc/xdrgen/templates/C/typedef/definition/{variable_length_string.j2 => string.j2} (100%)
 rename tools/net/sunrpc/xdrgen/templates/C/typedef/encoder/{variable_length_string.j2 => string.j2} (100%)
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/typedef/maxsize/basic.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/typedef/maxsize/fixed_length_opaque.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/typedef/maxsize/string.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/typedef/maxsize/variable_length_array.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/typedef/maxsize/variable_length_opaque.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/union/decoder/case_spec_be.j2
 rename tools/net/sunrpc/xdrgen/templates/C/union/decoder/{variable_length_string.j2 => string.j2} (100%)
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/union/encoder/case_spec_be.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/union/maxsize/union.j2

Comments

pr-tracker-bot@kernel.org Nov. 26, 2024, 9:05 p.m. UTC | #1
The pull request you sent on Tue, 26 Nov 2024 09:53:32 -0500:

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

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/445d9f05fa149556422f7fdd52dacf487cc8e7be

Thank you!