summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorBenjamin Coddington <ben.coddington@hammerspace.com>2026-09-04 08:56:05 -0400
committerAnna Schumaker <anna.schumaker@hammerspace.com>2026-10-05 09:46:41 -0400
commit60bb8276fb3bab693bde411d1aa1af2a10a15db5 (patch)
tree9f2cb6016ea7590aa1207357a5d91ad962ef489d /include/linux
parent99ce1c14294236f0902df9870850ff1c3ed24381 (diff)
NFSv4.1/pnfs: treat an oversized LAYOUTGET reply as -EMSGSIZE
decode_layoutget() already detects a server that sends a layout body larger than the reply buffer we provided ("server cheating in layoutget reply") but maps it to -EINVAL, which pnfs_update_layout() treats as a transient error: the client falls back to the MDS for this I/O only and re-sends a doomed LAYOUTGET on every subsequent pageio attempt. A server that overruns the reply buffer has ignored loga_maxcount, but the client can recover the same way it recovers from a conformant server's NFS4ERR_TOOSMALL: return -EMSGSIZE from exactly this check so that the layoutget path retries once with a session-sized reply buffer and otherwise marks the layout mode failed and falls back to the MDS. Assisted-by: Claude:claude-opus-4-8 Signed-off-by: Benjamin Coddington <bcodding@hammerspace.com> Reviewed-by: Jeff Layton <jlayton@kernel.org> Signed-off-by: Anna Schumaker <anna.schumaker@hammerspace.com>
Diffstat (limited to 'include/linux')
0 files changed, 0 insertions, 0 deletions