Re: [PATCH v7] sunrpc: allocate a separate bvec array for socket sends

From: Chuck Lever

Date: Mon Oct 13 2025 - 10:11:32 EST


From: Chuck Lever <chuck.lever@xxxxxxxxxx>

On Mon, 13 Oct 2025 09:54:53 -0400, Jeff Layton wrote:
> svc_tcp_sendmsg() calls xdr_buf_to_bvec() with the second slot of
> rq_bvec as the start, but doesn't reduce the array length by one, which
> could lead to an array overrun. Also, rq_bvec is always rq_maxpages in
> length, which can be too short in some cases, since the TCP record
> marker consumes a slot.
>
> Fix both problems by adding a separate bvec array to the svc_sock that
> is specifically for sending. For TCP, make this array one slot longer
> than rq_maxpages, to account for the record marker. For UDP, only
> allocate as large an array as we need since it's limited to 64k of
> payload.
>
> [...]

Applied to nfsd-testing, thanks!

[1/1] sunrpc: allocate a separate bvec array for socket sends
commit: fcf522297252d21db162e141d49b2bb4f1c2b0c4

--
Chuck Lever <chuck.lever@xxxxxxxxxx>