diff options
| author | Chuck Lever <cel@kernel.org> | 2026-08-02 13:04:28 -0400 |
|---|---|---|
| committer | Chuck Lever <cel@kernel.org> | 2026-08-26 16:41:33 -0400 |
| commit | cdf19fd48dd7e991e51f7a9946c1ddf114b38054 (patch) | |
| tree | 5d1f64f0318954e88ec0c99506939fea3cb984bc /scripts/objdiff | |
| parent | 9b910f445eadb97585989f06d14eaa552f013f27 (diff) | |
| download | linux-next-cdf19fd48dd7e991e51f7a9946c1ddf114b38054.tar.gz linux-next-cdf19fd48dd7e991e51f7a9946c1ddf114b38054.zip | |
NFSD: Budget the CB_SEQUENCE opcode and referring call array count
cb_sequence_enc_sz counts the session ID, the four scalar fields, and
one referring call list. encode_cb_sequence4args() also emits the
CB_SEQUENCE opcode and the csa_referring_call_lists array count, so
the macro falls two XDR words short. Every NFS4_enc_cb_*_sz built on
it is short by the same two words.
NFSD_CB_MAX_REQ_SZ derives from NFS4_enc_cb_recall_sz, so the two
missing CB_SEQUENCE words shrink the ca_maxrequestsize that
check_backchannel_attrs() accepts by eight bytes. Count both words.
The minimum a client must advertise rises by those eight bytes.
The short count cannot overrun the send buffer. The macro sizes
p_arglen, and rq_callsize adds two credential slacks on top of that.
The only client affected is one whose ca_maxrequestsize falls inside
those eight bytes. No backport is needed.
Link: https://patch.msgid.link/20260802-nfsd-deleg-destroy-badhandle-v1-1-323aa7196055@kernel.org
Signed-off-by: Chuck Lever <cel@kernel.org>
Diffstat (limited to 'scripts/objdiff')
0 files changed, 0 insertions, 0 deletions
