Am Mittwoch, dem 17.01.2024 um 17:03 -0500 schrieb Chuck Lever: > On Wed, Jan 17, 2024 at 10:06:28PM +0100, Lucas Stach wrote: > > Use the proper size when setting up the bio_vec, as otherwise only > > zero-length UDP packets will be sent. > > > > Fixes: baabf59c2414 ("SUNRPC: Convert svc_udp_sendto() to use the per-socket bio_vec array") > > Signed-off-by: Lucas Stach <l.stach@xxxxxxxxxxxxxx> > > --- > > net/sunrpc/svcsock.c | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/net/sunrpc/svcsock.c b/net/sunrpc/svcsock.c > > index 998687421fa6..e0ce4276274b 100644 > > --- a/net/sunrpc/svcsock.c > > +++ b/net/sunrpc/svcsock.c > > @@ -717,12 +717,12 @@ static int svc_udp_sendto(struct svc_rqst *rqstp) > > ARRAY_SIZE(rqstp->rq_bvec), xdr); > > > > iov_iter_bvec(&msg.msg_iter, ITER_SOURCE, rqstp->rq_bvec, > > - count, 0); > > + count, rqstp->rq_res.len); > > err = sock_sendmsg(svsk->sk_sock, &msg); > > if (err == -ECONNREFUSED) { > > /* ICMP error on earlier request. */ > > iov_iter_bvec(&msg.msg_iter, ITER_SOURCE, rqstp->rq_bvec, > > - count, 0); > > + count, rqstp->rq_res.len); > > err = sock_sendmsg(svsk->sk_sock, &msg); > > } > > > > -- > > 2.43.0 > > > > I can't fathom why I would have chosen zero for the @count argument. > > We currently have zero test coverage for UDP. I'll look into that. > > I've applied this to the nfsd-fixes branch. It should appear in > v6.8-rc if I can get it tested. Thanks. For what it is worth, this fix didn't come out of pure code inspection, but fixes a real world setup for me. While I can't claim that I have any kind of comprehensive testing, this fix has at least shown to fix the issue introduced in the referenced commit in my setup. Regards, Lucas