[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <Z0Xg7A1J/CkYiENR@tissot.1015granger.net>
Date: Tue, 26 Nov 2024 09:53:32 -0500
From: Chuck Lever <chuck.lever@...cle.com>
To: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: linux-nfs@...r.kernel.org, linux-kernel@...r.kernel.org,
Jeff Layton <jlayton@...nel.org>
Subject: [GIT PULL] NFSD changes for v6.13
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
--
Chuck Lever
Powered by blists - more mailing lists