|
@@ -360,8 +360,10 @@ static int xs_send_pagedata(struct socket *sock, struct xdr_buf *xdr, unsigned i
|
|
|
int flags = XS_SENDMSG_FLAGS;
|
|
|
|
|
|
remainder -= len;
|
|
|
- if (remainder != 0 || more)
|
|
|
+ if (more)
|
|
|
flags |= MSG_MORE;
|
|
|
+ if (remainder != 0)
|
|
|
+ flags |= MSG_SENDPAGE_NOTLAST | MSG_MORE;
|
|
|
err = do_sendpage(sock, *ppage, base, len, flags);
|
|
|
if (remainder == 0 || err != len)
|
|
|
break;
|