On Sat, Mar 22, 2014 at 11:50:05PM -0700, Christoph Hellwig wrote: > Ah, here we got the helper for most of the error handling I asked for > earlier. Might be worth mentioning in that patch that this gets further > improvements soons. OK, will do. > > if (nfserr) { > > - xdr->p -= 2; > > - xdr->iov->iov_len -= 8; > > + xdr->buf->page_len = 0; > > + xdr_truncate_encode(xdr, starting_len); > > Why do we still need to manually set the page_len? In the splice case read increments page_len as it goes. This leaves the xdr_buf in somewhat of an inconsistent state and may confuse a later xdr_truncate_encode. It's a little ugly, I'm not sure what to do about it. Currently I'm thinking of just telling nfsd's splice callback to leave page_len alone. That'd mean taking another look at the splice callback and at the v2/v3 read code. --b. -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html