On Thu, 2019-01-03 at 14:07 +0000, Trond Myklebust wrote: > On Thu, 2019-01-03 at 11:16 +0100, Geert Uytterhoeven wrote: > > > > I don't understand the code well enough to see why the call to > > xs_flush_bvec() is needed in this branch only, but it does fix TCP > > NFS on RBTX4927, so > > Tested-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> Sorry. I forgot to answer the implicit question there. This is the only place where we may find ourselves reading directly from a socket into the page cache, so that's why we don't need xs_flush_bvec() in the other branches. The kvec entries in struct xdr_buf should always point to private memory buffers that can't be mapped into user space. -- Trond Myklebust Linux NFS client maintainer, Hammerspace trond.myklebust@xxxxxxxxxxxxxxx