1
0
Fork 0
mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git synced 2025-01-24 01:09:38 -05:00
No description
Find a file
Jeff Layton 10396f4df8 nfsd: hold a lighter-weight client reference over CB_RECALL_ANY
Currently the CB_RECALL_ANY job takes a cl_rpc_users reference to the
client. While a callback job is technically an RPC that counter is
really more for client-driven RPCs, and this has the effect of
preventing the client from being unhashed until the callback completes.

If nfsd decides to send a CB_RECALL_ANY just as the client reboots, we
can end up in a situation where the callback can't complete on the (now
dead) callback channel, but the new client can't connect because the old
client can't be unhashed. This usually manifests as a NFS4ERR_DELAY
return on the CREATE_SESSION operation.

The job is only holding a reference to the client so it can clear a flag
after the RPC completes. Fix this by having CB_RECALL_ANY instead hold a
reference to the cl_nfsdfs.cl_ref. Typically we only take that sort of
reference when dealing with the nfsdfs info files, but it should work
appropriately here to ensure that the nfs4_client doesn't disappear.

Fixes: 44df6f439a ("NFSD: add delegation reaper to react to low memory condition")
Reported-by: Vladimir Benes <vbenes@redhat.com>
Signed-off-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
2024-04-05 14:05:35 -04:00
arch - Make sure clearing CPU buffers using VERW happens at the latest possible 2024-02-25 10:22:21 -08:00
block
certs
crypto
Documentation Two documentation build fixes: 2024-02-25 10:58:12 -08:00
drivers USB fixes for 6.8-rc6 2024-02-25 10:41:57 -08:00
fs nfsd: hold a lighter-weight client reference over CB_RECALL_ANY 2024-04-05 14:05:35 -04:00
include svcrdma: Add Write chunk WRs to the RPC's Send WR chain 2024-03-01 09:12:30 -05:00
init
io_uring
ipc
kernel
lib
LICENSES
mm cxl fixes for 6.8-rc6 2024-02-24 15:53:40 -08:00
net SUNRPC: Fix a slow server-side memory leak with RPC-over-TCP 2024-04-04 09:43:02 -04:00
rust
samples
scripts
security
sound
tools cxl fixes for 6.8-rc6 2024-02-24 15:53:40 -08:00
usr
virt
.clang-format
.cocciconfig
.editorconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap
.rustfmt.toml
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS MAINTAINERS: add Alex Aring as Reviewer for file locking code 2024-03-01 09:12:25 -05:00
Makefile Linux 6.8-rc6 2024-02-25 15:46:06 -08:00
README

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.