kernel_samsung_a53x/fs/nfsd
Chuck Lever 49512f390c NFSD: Cap rsize_bop result based on send buffer size
[ Upstream commit 76ce4dcec0dc08a032db916841ddc4e3998be317 ]

Since before the git era, NFSD has conserved the number of pages
held by each nfsd thread by combining the RPC receive and send
buffers into a single array of pages. This works because there are
no cases where an operation needs a large RPC Call message and a
large RPC Reply at the same time.

Once an RPC Call has been received, svc_process() updates
svc_rqst::rq_res to describe the part of rq_pages that can be
used for constructing the Reply. This means that the send buffer
(rq_res) shrinks when the received RPC record containing the RPC
Call is large.

Add an NFSv4 helper that computes the size of the send buffer. It
replaces svc_max_payload() in spots where svc_max_payload() returns
a value that might be larger than the remaining send buffer space.
Callers who need to know the transport's actual maximum payload size
will continue to use svc_max_payload().

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:28:24 +01:00
..
acl.h NFSD: add posix ACLs to struct nfsd_attrs 2024-11-19 12:28:04 +01:00
auth.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
auth.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
blocklayout.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
blocklayoutxdr.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
blocklayoutxdr.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
cache.h nfsd: use DEFINE_SHOW_ATTRIBUTE to define nfsd_reply_cache_stats_fops 2024-11-19 12:28:24 +01:00
current_stateid.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
export.c nfsd: report per-export stats 2024-11-19 12:27:31 +01:00
export.h nfsd: report per-export stats 2024-11-19 12:27:31 +01:00
fault_inject.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
filecache.c nfsd: use DEFINE_SHOW_ATTRIBUTE to define nfsd_file_cache_stats_fops 2024-11-19 12:28:24 +01:00
filecache.h nfsd: use DEFINE_SHOW_ATTRIBUTE to define nfsd_file_cache_stats_fops 2024-11-19 12:28:24 +01:00
flexfilelayout.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
flexfilelayoutxdr.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
flexfilelayoutxdr.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
idmap.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Kconfig NFSD: Remove CONFIG_NFSD_V3 2024-11-19 12:27:54 +01:00
lockd.c Keep read and write fds with each nlm_file 2024-11-19 12:27:44 +01:00
Makefile NFSD: Remove CONFIG_NFSD_V3 2024-11-19 12:27:54 +01:00
netns.h NFSD: add shrinker to reap courtesy clients on low memory condition 2024-11-19 12:28:23 +01:00
nfs2acl.c SUNRPC: Parametrize how much of argsize should be zeroed 2024-11-19 12:28:23 +01:00
nfs3acl.c SUNRPC: Parametrize how much of argsize should be zeroed 2024-11-19 12:28:23 +01:00
nfs3proc.c NFSD: Refactor common code out of dirlist helpers 2024-11-19 12:28:23 +01:00
nfs3xdr.c NFSD: Clean up WRITE arg decoders 2024-11-19 12:28:23 +01:00
nfs4acl.c NFSD: add posix ACLs to struct nfsd_attrs 2024-11-19 12:28:04 +01:00
nfs4callback.c NFSD: Move copy offload callback arguments into a separate structure 2024-11-19 12:28:03 +01:00
nfs4idmap.c NFSD: move from strlcpy with unused retval to strscpy 2024-11-19 12:28:21 +01:00
nfs4layouts.c NFSD: Add tracepoints to report NFSv4 callback completions 2024-11-19 12:28:22 +01:00
nfs4proc.c NFSD: Cap rsize_bop result based on send buffer size 2024-11-19 12:28:24 +01:00
nfs4recover.c nfsd: Propagate some error code returned by memdup_user() 2024-11-19 12:28:21 +01:00
nfs4state.c NFSD: Rename the fields in copy_stateid_t 2024-11-19 12:28:24 +01:00
nfs4xdr.c NFSD: Clean up nfs4svc_encode_compoundres() 2024-11-19 12:28:23 +01:00
nfscache.c nfsd: use DEFINE_SHOW_ATTRIBUTE to define nfsd_reply_cache_stats_fops 2024-11-19 12:28:24 +01:00
nfsctl.c nfsd: use DEFINE_SHOW_ATTRIBUTE to define nfsd_file_cache_stats_fops 2024-11-19 12:28:24 +01:00
nfsd.h NFSD: add shrinker to reap courtesy clients on low memory condition 2024-11-19 12:28:23 +01:00
nfsfh.c NFSD: Remove CONFIG_NFSD_V3 2024-11-19 12:27:54 +01:00
nfsfh.h NFSD: Remove CONFIG_NFSD_V3 2024-11-19 12:27:54 +01:00
nfsproc.c NFSD: Refactor common code out of dirlist helpers 2024-11-19 12:28:23 +01:00
nfssvc.c NFSD: move from strlcpy with unused retval to strscpy 2024-11-19 12:28:21 +01:00
nfsxdr.c NFSD: Clean up WRITE arg decoders 2024-11-19 12:28:23 +01:00
pnfs.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
state.h NFSD: Rename the fields in copy_stateid_t 2024-11-19 12:28:24 +01:00
stats.c nfsd: use DEFINE_PROC_SHOW_ATTRIBUTE to define nfsd_proc_ops 2024-11-19 12:28:24 +01:00
stats.h nfsd: make nfsd_stats.th_cnt atomic_t 2024-11-19 12:27:50 +01:00
trace.c NFSD: Add SPDX header for fs/nfsd/trace.c 2024-11-19 12:27:20 +01:00
trace.h NFSD: Add a mechanism to wait for a DELEGRETURN 2024-11-19 12:28:22 +01:00
vfs.c NFSD: Make nfsd4_remove() wait before returning NFS4ERR_DELAY 2024-11-19 12:28:22 +01:00
vfs.h NFSD: drop fname and flen args from nfsd_create_locked() 2024-11-19 12:28:22 +01:00
xdr.h SUNRPC: Change return value type of .pc_encode 2024-11-19 12:27:48 +01:00
xdr3.h SUNRPC: Change return value type of .pc_encode 2024-11-19 12:27:48 +01:00
xdr4.h NFSD: Pack struct nfsd4_compoundres 2024-11-19 12:28:23 +01:00
xdr4cb.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00