@@ -3876,7 +3876,10 @@ nfsd4_encode_read_plus_data(struct nfsd4_compoundres *resp, struct nfsd4_read *r
maxcount = min_t(unsigned long, maxcount, read->rd_length);
maxcount = min_t(unsigned long, maxcount, hole_pos - read->rd_offset);
- err = nfsd4_encode_readv(resp, read, file, &maxcount);
+ if ((read->rd_offset == 0) && (read->rd_length == maxcount))
+ err = nfsd4_encode_splice_read(resp, read, file, &maxcount);
+ else
+ err = nfsd4_encode_readv(resp, read, file, &maxcount);
*p++ = cpu_to_be32(NFS4_CONTENT_DATA);
p = xdr_encode_hyper(p, read->rd_offset);