(1 /* data_content4 */ + \
                                         2 /* data_info4.di_offset */ + \
                                         1 /* data_info4.di_length */)
+#define NFS42_READ_PLUS_HOLE_SEGMENT_SIZE \
+                                       (1 /* data_content4 */ + \
+                                        2 /* data_info4.di_offset */ + \
+                                        2 /* data_info4.di_length */)
+#define READ_PLUS_SEGMENT_SIZE_DIFF    (NFS42_READ_PLUS_HOLE_SEGMENT_SIZE - \
+                                        NFS42_READ_PLUS_DATA_SEGMENT_SIZE)
 #define decode_read_plus_maxsz         (op_decode_hdr_maxsz + \
                                         1 /* rpr_eof */ + \
                                         1 /* rpr_contents count */ + \
-                                        NFS42_READ_PLUS_DATA_SEGMENT_SIZE)
+                                        NFS42_READ_PLUS_HOLE_SEGMENT_SIZE)
 #define encode_seek_maxsz              (op_encode_hdr_maxsz + \
                                         encode_stateid_maxsz + \
                                         2 /* offset */ + \
        encode_putfh(xdr, args->fh, &hdr);
        encode_read_plus(xdr, args, &hdr);
 
-       rpc_prepare_reply_pages(req, args->pages, args->pgbase,
-                               args->count, hdr.replen);
+       rpc_prepare_reply_pages(req, args->pages, args->pgbase, args->count,
+                               hdr.replen - READ_PLUS_SEGMENT_SIZE_DIFF);
        encode_nops(&hdr);
 }