Skip to content

RFC nfs4xdr cleanup v2

Benny Halevy linux-nfs lkml 2 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v2 RFC Latest21 patches 23 repliesIn review
  2. v1 RFC13 patches 5 repliesSuperseded

Changes in v2 from the cover letter

- dropped xdr_{en,de}code_int, open code cpu_to_be32 and be32_to_cpup instead.
- added helpers for decoding stateid, verifier, and sessionid using a common helper for decoding fixed size opaque arrays.
- COPYMEM calls all converted to memcpy (no need for returning ptr)
- READ_BUF open coded, callers use print_overflow_msg as you suggested.

- minor cleanup in encode_compound_hdr
- optimized nfs41 reserve_space usage
- optimized low level encoding
- simplified decode_exchange_id by reusing decode_opaque_inline
- optimized low level decoding

Patches in v2 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/21sunrpc: hton -> cpu_to_be*include/linux/sunrpc/xdr.h net/sunrpc/xdr.c+5 -60 replies
2/21sunrpc: ntoh -> be*_to_cpuinclude/linux/sunrpc/xdr.h net/sunrpc/xdr.c+5 -60 replies
3/21nfs: nfs4xdr: get rid of WRITE32fs/nfs/nfs4xdr.c+145 -1460 replies
4/21nfs: nfs4xdr: get rid of WRITE64fs/nfs/nfs4xdr.c+20 -240 replies
5/21nfs: nfs4xdr: get rid of WRITEMEMfs/nfs/nfs4xdr.c+32 -360 replies
6/21nfs: nfs4xdr: optimize RESERVE_SPACE in encode_create_session and encode_sequencefs/nfs/nfs4xdr.c+5 -175 replies
7/21nfs: nfs4xdr: encode_compound_hdr does not have to round up reserved bytesfs/nfs/nfs4xdr.c+1 -10 replies
8/21nfs: nfs4xdr: change RESERVE_SPACE macro into a static helperfs/nfs/nfs4xdr.c+65 -730 replies
9/21nfs: nfs4xdr: optimize low level encodingfs/nfs/nfs4xdr.c+64 -640 replies
10/21nfs: nfs4xdr: merge xdr_encode_int+xdr_encode_opaque_fixed into xdr_encode_opaquefs/nfs/nfs4xdr.c+14 -280 replies
11/21nfs: nfs4xdr: get rid of READ32fs/nfs/nfs4xdr.c+72 -730 replies
12/21nfs: nfs4xdr: get rid of READ64fs/nfs/nfs4xdr.c+25 -290 replies
13/21nfs: nfs4xdr: get rid of READTIMEfs/nfs/nfs4xdr.c+0 -50 replies
14/21nfs: nfs4xdr: introduce print_overflow_msgfs/nfs/nfs4xdr.c+8 -40 replies
15/21nfs: nfs4xdr: introduce decode_opaque_fixed and decode_stateid helpersfs/nfs/nfs4xdr.c+40 -310 replies
16/21nfs: nfs4xdr: introduce decode_verifier helperfs/nfs/nfs4xdr.c+11 -92 replies
17/21nfs: nfs4xdr: introduce decode_sessionid helperfs/nfs/nfs4xdr.c+15 -100 replies
18/21nfs: nfs4xdr: get rid of COPYMEMfs/nfs/nfs4xdr.c+3 -80 replies
19/21nfs: nfs4xdr: simplify decode_exchange_id by reusing decode_opaque_inlinefs/nfs/nfs4xdr.c+10 -90 replies
20/21nfs: nfs4xdr: get rid of READ_BUFfs/nfs/nfs4xdr.c+379 -960 replies
21/21nfs: nfs4xdr: optimize low level decodingfs/nfs/nfs4xdr.c+59 -590 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v2 yet.

Read the v2 thread

Cover letter [PATCH RFC v2 0/21] nfs4xdr cleanup v2

Trond, thanks for your comments.
I believe I've fixed them all.

Changes from v1:

- dropped xdr_{en,de}code_int, open code cpu_to_be32 and be32_to_cpup instead.
- added helpers for decoding stateid, verifier, and sessionid using a common helper for decoding fixed size opaque arrays.
- COPYMEM calls all converted to memcpy (no need for returning ptr)
- READ_BUF open coded, callers use print_overflow_msg as you suggested.

- minor cleanup in encode_compound_hdr
- optimized nfs41 reserve_space usage
- optimized low level encoding
- simplified decode_exchange_id by reusing decode_opaque_inline
- optimized low level decoding

In this patchset:

[PATCH RFC v2 01/21] sunrpc: hton -> cpu_to_be*
[PATCH RFC v2 02/21] sunrpc: ntoh -> be*_to_cpu
[PATCH RFC v2 03/21] nfs: nfs4xdr: get rid of WRITE32
[PATCH RFC v2 04/21] nfs: nfs4xdr: get rid of WRITE64
[PATCH RFC v2 05/21] nfs: nfs4xdr: get rid of WRITEMEM
[PATCH RFC v2 06/21] nfs: nfs4xdr: optimize RESERVE_SPACE in encode_create_session and encode_sequence [PATCH RFC v2 07/21] nfs: nfs4xdr: encode_compound_hdr does not have to round up reserved bytes [PATCH RFC v2 08/21] nfs: nfs4xdr: change RESERVE_SPACE macro into a static helper [PATCH RFC v2 09/21] nfs: nfs4xdr: optimize low level encoding
[PATCH RFC v2 10/21] nfs: nfs4xdr: merge xdr_encode_int+xdr_encode_opaque_fixed into xdr_encode_opaque [PATCH RFC v2 11/21] nfs: nfs4xdr: get rid of READ32
[PATCH RFC v2 12/21] nfs: nfs4xdr: get rid of READ64
[PATCH RFC v2 13/21] nfs: nfs4xdr: get rid of READTIME
[PATCH RFC v2 14/21] nfs: nfs4xdr: introduce print_overflow_msg
[PATCH RFC v2 15/21] nfs: nfs4xdr: introduce decode_opaque_fixed and decode_stateid helpers [PATCH RFC v2 16/21] nfs: nfs4xdr: introduce decode_verifier helper
[PATCH RFC v2 17/21] nfs: nfs4xdr: introduce decode_sessionid helper
[PATCH RFC v2 18/21] nfs: nfs4xdr: get rid of COPYMEM
[PATCH RFC v2 19/21] nfs: nfs4xdr: simplify decode_exchange_id by reusing decode_opaque_inline [PATCH RFC v2 20/21] nfs: nfs4xdr: get rid of READ_BUF
[PATCH RFC v2 21/21] nfs: nfs4xdr: optimize low level decoding

Benny