NFSv4.2: Fix up READ_PLUS alignment
authorAnna Schumaker <Anna.Schumaker@Netapp.com>
Wed, 30 Nov 2022 18:15:26 +0000 (13:15 -0500)
committerTrond Myklebust <trond.myklebust@hammerspace.com>
Tue, 6 Dec 2022 17:29:35 +0000 (12:29 -0500)
Assume that the first segment will be a DATA segment, and place the data
directly into the xdr pages so it doesn't need to be shifted.

Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
fs/nfs/nfs42xdr.c

index 2fd465cab631d28c9041e78687ebbf760a193177..d80ee88ca9969ee535f598334defebc0348d81fc 100644 (file)
 #define decode_deallocate_maxsz                (op_decode_hdr_maxsz)
 #define encode_read_plus_maxsz         (op_encode_hdr_maxsz + \
                                         encode_stateid_maxsz + 3)
-#define NFS42_READ_PLUS_SEGMENT_SIZE   (1 /* data_content4 */ + \
+#define NFS42_READ_PLUS_DATA_SEGMENT_SIZE \
+                                       (1 /* data_content4 */ + \
                                         2 /* data_info4.di_offset */ + \
-                                        2 /* data_info4.di_length */)
+                                        1 /* data_info4.di_length */)
 #define decode_read_plus_maxsz         (op_decode_hdr_maxsz + \
                                         1 /* rpr_eof */ + \
                                         1 /* rpr_contents count */ + \
-                                        2 * NFS42_READ_PLUS_SEGMENT_SIZE)
+                                        NFS42_READ_PLUS_DATA_SEGMENT_SIZE)
 #define encode_seek_maxsz              (op_encode_hdr_maxsz + \
                                         encode_stateid_maxsz + \
                                         2 /* offset */ + \