]> err.no Git - linux-2.6/commitdiff
NFSv4: More NFSv4 xdr cleanups
authorTrond Myklebust <Trond.Myklebust@netapp.com>
Wed, 18 Jul 2007 01:52:42 +0000 (21:52 -0400)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Thu, 19 Jul 2007 19:09:04 +0000 (15:09 -0400)
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
fs/nfs/nfs4xdr.c

index af959147077bab79cf1c3f453e0151c1706cc5f1..5eb92f1e2e109f2ddfce7c2121fed4c602e2e645 100644 (file)
@@ -72,10 +72,15 @@ static int nfs4_stat_to_errno(int);
  */
 #define open_owner_id_maxsz    (1 + 4)
 #define lock_owner_id_maxsz    (1 + 4)
+#define decode_lockowner_maxsz (1 + XDR_QUADLEN(IDMAP_NAMESZ))
 #define compound_encode_hdr_maxsz      (3 + (NFS4_MAXTAGLEN >> 2))
 #define compound_decode_hdr_maxsz      (3 + (NFS4_MAXTAGLEN >> 2))
 #define op_encode_hdr_maxsz    (1)
 #define op_decode_hdr_maxsz    (2)
+#define encode_stateid_maxsz   (XDR_QUADLEN(NFS4_STATEID_SIZE))
+#define decode_stateid_maxsz   (XDR_QUADLEN(NFS4_STATEID_SIZE))
+#define encode_verifier_maxsz  (XDR_QUADLEN(NFS4_VERIFIER_SIZE))
+#define decode_verifier_maxsz  (XDR_QUADLEN(NFS4_VERIFIER_SIZE))
 #define encode_putfh_maxsz     (op_encode_hdr_maxsz + 1 + \
                                (NFS4_FHSIZE >> 2))
 #define decode_putfh_maxsz     (op_decode_hdr_maxsz)
@@ -96,6 +101,11 @@ static int nfs4_stat_to_errno(int);
 #define nfs4_fattr_maxsz       (nfs4_fattr_bitmap_maxsz + \
                                nfs4_fattr_value_maxsz)
 #define decode_getattr_maxsz    (op_decode_hdr_maxsz + nfs4_fattr_maxsz)
+#define encode_attrs_maxsz     (nfs4_fattr_bitmap_maxsz + \
+                                1 + 2 + 1 + \
+                               nfs4_owner_maxsz + \
+                               nfs4_group_maxsz + \
+                               4 + 4)
 #define encode_savefh_maxsz     (op_encode_hdr_maxsz)
 #define decode_savefh_maxsz     (op_decode_hdr_maxsz)
 #define encode_restorefh_maxsz  (op_encode_hdr_maxsz)
@@ -123,7 +133,7 @@ static int nfs4_stat_to_errno(int);
 #define decode_lookup_maxsz    (op_decode_hdr_maxsz)
 #define encode_share_access_maxsz \
                                (2)
-#define encode_createmode_maxsz        (1 + nfs4_fattr_maxsz)
+#define encode_createmode_maxsz        (1 + encode_attrs_maxsz)
 #define encode_opentype_maxsz  (1 + encode_createmode_maxsz)
 #define encode_claim_null_maxsz        (1 + nfs4_name_maxsz)
 #define encode_open_maxsz      (op_encode_hdr_maxsz + \
@@ -132,14 +142,52 @@ static int nfs4_stat_to_errno(int);
                                encode_opentype_maxsz + \
                                encode_claim_null_maxsz)
 #define decode_ace_maxsz       (3 + nfs4_owner_maxsz)
-#define decode_delegation_maxsz        (1 + XDR_QUADLEN(NFS4_STATEID_SIZE) + 1 + \
+#define decode_delegation_maxsz        (1 + decode_stateid_maxsz + 1 + \
                                decode_ace_maxsz)
 #define decode_change_info_maxsz       (5)
 #define decode_open_maxsz      (op_decode_hdr_maxsz + \
-                               XDR_QUADLEN(NFS4_STATEID_SIZE) + \
+                               decode_stateid_maxsz + \
                                decode_change_info_maxsz + 1 + \
                                nfs4_fattr_bitmap_maxsz + \
                                decode_delegation_maxsz)
+#define encode_open_confirm_maxsz \
+                               (op_encode_hdr_maxsz + \
+                                encode_stateid_maxsz + 1)
+#define decode_open_confirm_maxsz \
+                               (op_decode_hdr_maxsz + \
+                                decode_stateid_maxsz)
+#define encode_open_downgrade_maxsz \
+                               (op_encode_hdr_maxsz + \
+                                encode_stateid_maxsz + 1 + \
+                                encode_share_access_maxsz)
+#define decode_open_downgrade_maxsz \
+                               (op_decode_hdr_maxsz + \
+                                decode_stateid_maxsz)
+#define encode_close_maxsz     (op_encode_hdr_maxsz + \
+                                1 + encode_stateid_maxsz)
+#define decode_close_maxsz     (op_decode_hdr_maxsz + \
+                                decode_stateid_maxsz)
+#define encode_setattr_maxsz   (op_encode_hdr_maxsz + \
+                                encode_stateid_maxsz + \
+                                encode_attrs_maxsz)
+#define decode_setattr_maxsz   (op_decode_hdr_maxsz + \
+                                nfs4_fattr_bitmap_maxsz)
+#define encode_read_maxsz      (op_encode_hdr_maxsz + \
+                                encode_stateid_maxsz + 3)
+#define decode_read_maxsz      (op_decode_hdr_maxsz + 2)
+#define encode_readdir_maxsz   (op_encode_hdr_maxsz + \
+                                2 + encode_verifier_maxsz + 5)
+#define decode_readdir_maxsz   (op_decode_hdr_maxsz + \
+                                decode_verifier_maxsz)
+#define encode_readlink_maxsz  (op_encode_hdr_maxsz)
+#define decode_readlink_maxsz  (op_decode_hdr_maxsz + 1)
+#define encode_write_maxsz     (op_encode_hdr_maxsz + \
+                                encode_stateid_maxsz + 4)
+#define decode_write_maxsz     (op_decode_hdr_maxsz + \
+                                2 + decode_verifier_maxsz)
+#define encode_commit_maxsz    (op_encode_hdr_maxsz + 3)
+#define decode_commit_maxsz    (op_decode_hdr_maxsz + \
+                                decode_verifier_maxsz)
 #define encode_remove_maxsz    (op_encode_hdr_maxsz + \
                                nfs4_name_maxsz)
 #define encode_rename_maxsz    (op_encode_hdr_maxsz + \
@@ -148,19 +196,44 @@ static int nfs4_stat_to_errno(int);
 #define encode_link_maxsz      (op_encode_hdr_maxsz + \
                                nfs4_name_maxsz)
 #define decode_link_maxsz      (op_decode_hdr_maxsz + 5)
+#define encode_lock_maxsz      (op_encode_hdr_maxsz + \
+                                7 + \
+                                1 + encode_stateid_maxsz + 8)
+#define decode_lock_denied_maxsz \
+                               (8 + decode_lockowner_maxsz)
+#define decode_lock_maxsz      (op_decode_hdr_maxsz + \
+                                decode_lock_denied_maxsz)
+#define encode_lockt_maxsz     (op_encode_hdr_maxsz + 12)
+#define decode_lockt_maxsz     (op_decode_hdr_maxsz + \
+                                decode_lock_denied_maxsz)
+#define encode_locku_maxsz     (op_encode_hdr_maxsz + 3 + \
+                                encode_stateid_maxsz + \
+                                4)
+#define decode_locku_maxsz     (op_decode_hdr_maxsz + \
+                                decode_stateid_maxsz)
+#define encode_access_maxsz    (op_encode_hdr_maxsz + 1)
+#define decode_access_maxsz    (op_decode_hdr_maxsz + 2)
 #define encode_symlink_maxsz   (op_encode_hdr_maxsz + \
                                1 + nfs4_name_maxsz + \
                                1 + \
                                nfs4_fattr_maxsz)
 #define decode_symlink_maxsz   (op_decode_hdr_maxsz + 8)
 #define encode_create_maxsz    (op_encode_hdr_maxsz + \
-                               2 + nfs4_name_maxsz + \
-                               nfs4_fattr_maxsz)
+                               1 + 2 + nfs4_name_maxsz + \
+                               encode_attrs_maxsz)
 #define decode_create_maxsz    (op_decode_hdr_maxsz + \
                                decode_change_info_maxsz + \
                                nfs4_fattr_bitmap_maxsz)
+#define encode_statfs_maxsz    (encode_getattr_maxsz)
+#define decode_statfs_maxsz    (decode_getattr_maxsz)
 #define encode_delegreturn_maxsz (op_encode_hdr_maxsz + 4)
 #define decode_delegreturn_maxsz (op_decode_hdr_maxsz)
+#define encode_getacl_maxsz    (encode_getattr_maxsz)
+#define decode_getacl_maxsz    (op_decode_hdr_maxsz + \
+                                nfs4_fattr_bitmap_maxsz + 1)
+#define encode_setacl_maxsz    (op_encode_hdr_maxsz + \
+                                encode_stateid_maxsz + 3)
+#define decode_setacl_maxsz    (decode_setattr_maxsz)
 #define encode_fs_locations_maxsz \
                                (encode_getattr_maxsz)
 #define decode_fs_locations_maxsz \
@@ -169,37 +242,37 @@ static int nfs4_stat_to_errno(int);
 #define NFS4_dec_compound_sz   (1024)  /* XXX: large enough? */
 #define NFS4_enc_read_sz       (compound_encode_hdr_maxsz + \
                                encode_putfh_maxsz + \
-                               op_encode_hdr_maxsz + 7)
+                               encode_read_maxsz)
 #define NFS4_dec_read_sz       (compound_decode_hdr_maxsz + \
                                decode_putfh_maxsz + \
-                               op_decode_hdr_maxsz + 2)
+                               decode_read_maxsz)
 #define NFS4_enc_readlink_sz   (compound_encode_hdr_maxsz + \
                                encode_putfh_maxsz + \
-                               op_encode_hdr_maxsz)
+                               encode_readlink_maxsz)
 #define NFS4_dec_readlink_sz   (compound_decode_hdr_maxsz + \
                                decode_putfh_maxsz + \
-                               op_decode_hdr_maxsz)
+                               decode_readlink_maxsz)
 #define NFS4_enc_readdir_sz    (compound_encode_hdr_maxsz + \
                                encode_putfh_maxsz + \
-                               op_encode_hdr_maxsz + 9)
+                               encode_readdir_maxsz)
 #define NFS4_dec_readdir_sz    (compound_decode_hdr_maxsz + \
                                decode_putfh_maxsz + \
-                               op_decode_hdr_maxsz + 2)
+                               decode_readdir_maxsz)
 #define NFS4_enc_write_sz      (compound_encode_hdr_maxsz + \
                                encode_putfh_maxsz + \
-                               op_encode_hdr_maxsz + 8 + \
+                               encode_write_maxsz + \
                                encode_getattr_maxsz)
 #define NFS4_dec_write_sz      (compound_decode_hdr_maxsz + \
                                decode_putfh_maxsz + \
-                               op_decode_hdr_maxsz + 4 + \
+                               decode_write_maxsz + \
                                decode_getattr_maxsz)
 #define NFS4_enc_commit_sz     (compound_encode_hdr_maxsz + \
                                encode_putfh_maxsz + \
-                               op_encode_hdr_maxsz + 3 + \
+                               encode_commit_maxsz + \
                                encode_getattr_maxsz)
 #define NFS4_dec_commit_sz     (compound_decode_hdr_maxsz + \
                                decode_putfh_maxsz + \
-                               op_decode_hdr_maxsz + 2 + \
+                               decode_commit_maxsz + \
                                decode_getattr_maxsz)
 #define NFS4_enc_open_sz        (compound_encode_hdr_maxsz + \
                                encode_putfh_maxsz + \
@@ -217,13 +290,14 @@ static int nfs4_stat_to_errno(int);
                                decode_getattr_maxsz + \
                                decode_restorefh_maxsz + \
                                decode_getattr_maxsz)
-#define NFS4_enc_open_confirm_sz      \
-                                (compound_encode_hdr_maxsz + \
-                                encode_putfh_maxsz + \
-                                op_encode_hdr_maxsz + 5)
-#define NFS4_dec_open_confirm_sz        (compound_decode_hdr_maxsz + \
-                                        decode_putfh_maxsz + \
-                                        op_decode_hdr_maxsz + 4)
+#define NFS4_enc_open_confirm_sz \
+                               (compound_encode_hdr_maxsz + \
+                                encode_putfh_maxsz + \
+                                encode_open_confirm_maxsz)
+#define NFS4_dec_open_confirm_sz \
+                               (compound_decode_hdr_maxsz + \
+                                decode_putfh_maxsz + \
+                                decode_open_confirm_maxsz)
 #define NFS4_enc_open_noattr_sz        (compound_encode_hdr_maxsz + \
                                        encode_putfh_maxsz + \
                                        encode_open_maxsz + \
@@ -234,31 +308,30 @@ static int nfs4_stat_to_errno(int);
                                        decode_getattr_maxsz)
 #define NFS4_enc_open_downgrade_sz \
                                (compound_encode_hdr_maxsz + \
-                                encode_putfh_maxsz + \
-                                op_encode_hdr_maxsz + 7 + \
-                               encode_getattr_maxsz)
+                                encode_putfh_maxsz + \
+                                encode_open_downgrade_maxsz + \
+                                encode_getattr_maxsz)
 #define NFS4_dec_open_downgrade_sz \
                                (compound_decode_hdr_maxsz + \
-                                decode_putfh_maxsz + \
-                                op_decode_hdr_maxsz + 4 + \
-                               decode_getattr_maxsz)
-#define NFS4_enc_close_sz       (compound_encode_hdr_maxsz + \
-                                encode_putfh_maxsz + \
-                                op_encode_hdr_maxsz + 5 + \
-                               encode_getattr_maxsz)
-#define NFS4_dec_close_sz       (compound_decode_hdr_maxsz + \
-                                decode_putfh_maxsz + \
-                                op_decode_hdr_maxsz + 4 + \
-                               decode_getattr_maxsz)
-#define NFS4_enc_setattr_sz     (compound_encode_hdr_maxsz + \
-                                encode_putfh_maxsz + \
-                                op_encode_hdr_maxsz + 4 + \
-                                nfs4_fattr_maxsz + \
-                                encode_getattr_maxsz)
-#define NFS4_dec_setattr_sz     (compound_decode_hdr_maxsz + \
-                                decode_putfh_maxsz + \
-                                op_decode_hdr_maxsz + 3 + \
-                                nfs4_fattr_maxsz)
+                                decode_putfh_maxsz + \
+                                decode_open_downgrade_maxsz + \
+                                decode_getattr_maxsz)
+#define NFS4_enc_close_sz      (compound_encode_hdr_maxsz + \
+                                encode_putfh_maxsz + \
+                                encode_close_maxsz + \
+                                encode_getattr_maxsz)
+#define NFS4_dec_close_sz      (compound_decode_hdr_maxsz + \
+                                decode_putfh_maxsz + \
+                                decode_close_maxsz + \
+                                decode_getattr_maxsz)
+#define NFS4_enc_setattr_sz    (compound_encode_hdr_maxsz + \
+                                encode_putfh_maxsz + \
+                                encode_setattr_maxsz + \
+                                encode_getattr_maxsz)
+#define NFS4_dec_setattr_sz    (compound_decode_hdr_maxsz + \
+                                decode_putfh_maxsz + \
+                                decode_setattr_maxsz + \
+                                decode_getattr_maxsz)
 #define NFS4_enc_fsinfo_sz     (compound_encode_hdr_maxsz + \
                                encode_putfh_maxsz + \
                                encode_fsinfo_maxsz)
@@ -285,39 +358,28 @@ static int nfs4_stat_to_errno(int);
                                decode_fsinfo_maxsz)
 #define NFS4_enc_lock_sz        (compound_encode_hdr_maxsz + \
                                encode_putfh_maxsz + \
-                               encode_getattr_maxsz + \
-                               op_encode_hdr_maxsz + \
-                               1 + 1 + 2 + 2 + \
-                               1 + 4 + 1 + 2 + \
-                               lock_owner_id_maxsz)
+                               encode_lock_maxsz)
 #define NFS4_dec_lock_sz        (compound_decode_hdr_maxsz + \
                                decode_putfh_maxsz + \
-                               decode_getattr_maxsz + \
-                               op_decode_hdr_maxsz + \
-                               2 + 2 + 1 + 2 + \
-                               lock_owner_id_maxsz)
+                               decode_lock_maxsz)
 #define NFS4_enc_lockt_sz       (compound_encode_hdr_maxsz + \
                                encode_putfh_maxsz + \
-                               encode_getattr_maxsz + \
-                               op_encode_hdr_maxsz + \
-                               1 + 2 + 2 + 2 + \
-                               lock_owner_id_maxsz)
-#define NFS4_dec_lockt_sz       (NFS4_dec_lock_sz)
+                               encode_lockt_maxsz)
+#define NFS4_dec_lockt_sz       (compound_decode_hdr_maxsz + \
+                                decode_putfh_maxsz + \
+                                decode_lockt_maxsz)
 #define NFS4_enc_locku_sz       (compound_encode_hdr_maxsz + \
                                encode_putfh_maxsz + \
-                               encode_getattr_maxsz + \
-                               op_encode_hdr_maxsz + \
-                               1 + 1 + 4 + 2 + 2)
+                               encode_locku_maxsz)
 #define NFS4_dec_locku_sz       (compound_decode_hdr_maxsz + \
                                decode_putfh_maxsz + \
-                               decode_getattr_maxsz + \
-                               op_decode_hdr_maxsz + 4)
+                               decode_locku_maxsz)
 #define NFS4_enc_access_sz     (compound_encode_hdr_maxsz + \
                                encode_putfh_maxsz + \
-                               op_encode_hdr_maxsz + 1)
+                               encode_access_maxsz)
 #define NFS4_dec_access_sz     (compound_decode_hdr_maxsz + \
                                decode_putfh_maxsz + \
-                               op_decode_hdr_maxsz + 2)
+                               decode_access_maxsz)
 #define NFS4_enc_getattr_sz    (compound_encode_hdr_maxsz + \
                                encode_putfh_maxsz + \
                                encode_getattr_maxsz)
@@ -416,10 +478,10 @@ static int nfs4_stat_to_errno(int);
                                decode_getattr_maxsz)
 #define NFS4_enc_statfs_sz     (compound_encode_hdr_maxsz + \
                                encode_putfh_maxsz + \
-                               encode_getattr_maxsz)
+                               encode_statfs_maxsz)
 #define NFS4_dec_statfs_sz     (compound_decode_hdr_maxsz + \
                                decode_putfh_maxsz + \
-                               op_decode_hdr_maxsz + 12)
+                               decode_statfs_maxsz)
 #define NFS4_enc_server_caps_sz (compound_encode_hdr_maxsz + \
                                encode_putfh_maxsz + \
                                encode_getattr_maxsz)
@@ -435,18 +497,16 @@ static int nfs4_stat_to_errno(int);
                                decode_getattr_maxsz)
 #define NFS4_enc_getacl_sz     (compound_encode_hdr_maxsz + \
                                encode_putfh_maxsz + \
-                               encode_getattr_maxsz)
+                               encode_getacl_maxsz)
 #define NFS4_dec_getacl_sz     (compound_decode_hdr_maxsz + \
                                decode_putfh_maxsz + \
-                               op_decode_hdr_maxsz + \
-                               nfs4_fattr_bitmap_maxsz + 1)
+                               decode_getacl_maxsz)
 #define NFS4_enc_setacl_sz     (compound_encode_hdr_maxsz + \
                                encode_putfh_maxsz + \
-                               op_encode_hdr_maxsz + 4 + \
-                               nfs4_fattr_bitmap_maxsz + 1)
+                               encode_setacl_maxsz)
 #define NFS4_dec_setacl_sz     (compound_decode_hdr_maxsz + \
                                decode_putfh_maxsz + \
-                               op_decode_hdr_maxsz + nfs4_fattr_bitmap_maxsz)
+                               decode_setacl_maxsz)
 #define NFS4_enc_fs_locations_sz \
                                (compound_encode_hdr_maxsz + \
                                 encode_putfh_maxsz + \