Whamcloud - gitweb
LU-3165 ptlrpc: missing fields in mdt_rec_reint
authorLai Siyao <lai.siyao@intel.com>
Mon, 15 Apr 2013 05:47:10 +0000 (13:47 +0800)
committerOleg Drokin <oleg.drokin@intel.com>
Thu, 18 Apr 2013 23:10:26 +0000 (19:10 -0400)
Fields rr_flags_h and rr_umask are missing in mdt_rec_reint, as
may cause swab issue in non-x86 system.

Signed-off-by: Lai Siyao <lai.siyao@intel.com>
Change-Id: I9a7b9a6b2fca6f16a03c48b2ae1ec5eae9852f76
Reviewed-on: http://review.whamcloud.com/6054
Tested-by: Hudson
Reviewed-by: Bobi Jam <bobijam@gmail.com>
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Tested-by: Jian Yu <jian.yu@intel.com>
Reviewed-by: Jian Yu <jian.yu@intel.com>
Reviewed-by: Ned Bass <bass6@llnl.gov>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lustre/include/lustre/lustre_idl.h
lustre/ptlrpc/pack_generic.c
lustre/ptlrpc/wiretest.c
lustre/utils/wirecheck.c
lustre/utils/wiretest.c

index 0704f12..176b747 100644 (file)
@@ -2542,29 +2542,29 @@ struct mdt_rec_setxattr {
  * rr_padding_x fields, then update lustre_swab_mdt_rec_reint() also.
  */
 struct mdt_rec_reint {
  * rr_padding_x fields, then update lustre_swab_mdt_rec_reint() also.
  */
 struct mdt_rec_reint {
-        __u32           rr_opcode;
-        __u32           rr_cap;
-        __u32           rr_fsuid;
-        __u32           rr_fsuid_h;
-        __u32           rr_fsgid;
-        __u32           rr_fsgid_h;
-        __u32           rr_suppgid1;
-        __u32           rr_suppgid1_h;
-        __u32           rr_suppgid2;
-        __u32           rr_suppgid2_h;
-        struct lu_fid   rr_fid1;
-        struct lu_fid   rr_fid2;
-        obd_time        rr_mtime;
-        obd_time        rr_atime;
-        obd_time        rr_ctime;
-        __u64           rr_size;
-        __u64           rr_blocks;
-        __u32           rr_bias;
-        __u32           rr_mode;
-        __u32           rr_flags;
-        __u32           rr_padding_2; /* also fix lustre_swab_mdt_rec_reint */
-        __u32           rr_padding_3; /* also fix lustre_swab_mdt_rec_reint */
-        __u32           rr_padding_4; /* also fix lustre_swab_mdt_rec_reint */
+       __u32           rr_opcode;
+       __u32           rr_cap;
+       __u32           rr_fsuid;
+       __u32           rr_fsuid_h;
+       __u32           rr_fsgid;
+       __u32           rr_fsgid_h;
+       __u32           rr_suppgid1;
+       __u32           rr_suppgid1_h;
+       __u32           rr_suppgid2;
+       __u32           rr_suppgid2_h;
+       struct lu_fid   rr_fid1;
+       struct lu_fid   rr_fid2;
+       obd_time        rr_mtime;
+       obd_time        rr_atime;
+       obd_time        rr_ctime;
+       __u64           rr_size;
+       __u64           rr_blocks;
+       __u32           rr_bias;
+       __u32           rr_mode;
+       __u32           rr_flags;
+       __u32           rr_flags_h;
+       __u32           rr_umask;
+       __u32           rr_padding_4; /* also fix lustre_swab_mdt_rec_reint */
 };
 
 extern void lustre_swab_mdt_rec_reint(struct mdt_rec_reint *rr);
 };
 
 extern void lustre_swab_mdt_rec_reint(struct mdt_rec_reint *rr);
index f2cd2bc..8c4bd89 100644 (file)
@@ -2065,30 +2065,30 @@ EXPORT_SYMBOL(lustre_swab_lip_header);
 
 void lustre_swab_mdt_rec_reint (struct mdt_rec_reint *rr)
 {
 
 void lustre_swab_mdt_rec_reint (struct mdt_rec_reint *rr)
 {
-        __swab32s (&rr->rr_opcode);
-        __swab32s (&rr->rr_cap);
-        __swab32s (&rr->rr_fsuid);
-        /* rr_fsuid_h is unused */
-        __swab32s (&rr->rr_fsgid);
-        /* rr_fsgid_h is unused */
-        __swab32s (&rr->rr_suppgid1);
-        /* rr_suppgid1_h is unused */
-        __swab32s (&rr->rr_suppgid2);
-        /* rr_suppgid2_h is unused */
-        lustre_swab_lu_fid (&rr->rr_fid1);
-        lustre_swab_lu_fid (&rr->rr_fid2);
-        __swab64s (&rr->rr_mtime);
-        __swab64s (&rr->rr_atime);
-        __swab64s (&rr->rr_ctime);
-        __swab64s (&rr->rr_size);
-        __swab64s (&rr->rr_blocks);
-        __swab32s (&rr->rr_bias);
-        __swab32s (&rr->rr_mode);
-        __swab32s (&rr->rr_flags);
-
-        CLASSERT(offsetof(typeof(*rr), rr_padding_2) != 0);
-        CLASSERT(offsetof(typeof(*rr), rr_padding_3) != 0);
-        CLASSERT(offsetof(typeof(*rr), rr_padding_4) != 0);
+       __swab32s(&rr->rr_opcode);
+       __swab32s(&rr->rr_cap);
+       __swab32s(&rr->rr_fsuid);
+       /* rr_fsuid_h is unused */
+       __swab32s(&rr->rr_fsgid);
+       /* rr_fsgid_h is unused */
+       __swab32s(&rr->rr_suppgid1);
+       /* rr_suppgid1_h is unused */
+       __swab32s(&rr->rr_suppgid2);
+       /* rr_suppgid2_h is unused */
+       lustre_swab_lu_fid(&rr->rr_fid1);
+       lustre_swab_lu_fid(&rr->rr_fid2);
+       __swab64s(&rr->rr_mtime);
+       __swab64s(&rr->rr_atime);
+       __swab64s(&rr->rr_ctime);
+       __swab64s(&rr->rr_size);
+       __swab64s(&rr->rr_blocks);
+       __swab32s(&rr->rr_bias);
+       __swab32s(&rr->rr_mode);
+       __swab32s(&rr->rr_flags);
+       __swab32s(&rr->rr_flags_h);
+       __swab32s(&rr->rr_umask);
+
+       CLASSERT(offsetof(typeof(*rr), rr_padding_4) != 0);
 };
 EXPORT_SYMBOL(lustre_swab_mdt_rec_reint);
 
 };
 EXPORT_SYMBOL(lustre_swab_mdt_rec_reint);
 
index d5b4386..b9cc36f 100644 (file)
@@ -54,8 +54,8 @@ void lustre_assert_wire_constants(void)
 {
         /* Wire protocol assertions generated by 'wirecheck'
          * (make -C lustre/utils newwiretest)
 {
         /* Wire protocol assertions generated by 'wirecheck'
          * (make -C lustre/utils newwiretest)
-         * running on Linux node7 2.6.32 #1 SMP Tue Dec 18 04:02:25 MSK 2012 x86_64 x86_64 x86_64 GNU
-         * with gcc version 4.4.6 20120305 (Red Hat 4.4.6-4) (GCC)  */
+         * running on Linux deva 2.6.32.279.lustre #5 SMP Tue Apr 9 22:52:17 CST 2013 x86_64 x86_64 x
+         * with gcc version 4.4.4 20100726 (Red Hat 4.4.4-13) (GCC)  */
 
 
        /* Constants... */
 
 
        /* Constants... */
@@ -2817,14 +2817,14 @@ void lustre_assert_wire_constants(void)
                 (long long)(int)offsetof(struct mdt_rec_reint, rr_flags));
        LASSERTF((int)sizeof(((struct mdt_rec_reint *)0)->rr_flags) == 4, "found %lld\n",
                 (long long)(int)sizeof(((struct mdt_rec_reint *)0)->rr_flags));
                 (long long)(int)offsetof(struct mdt_rec_reint, rr_flags));
        LASSERTF((int)sizeof(((struct mdt_rec_reint *)0)->rr_flags) == 4, "found %lld\n",
                 (long long)(int)sizeof(((struct mdt_rec_reint *)0)->rr_flags));
-       LASSERTF((int)offsetof(struct mdt_rec_reint, rr_padding_2) == 124, "found %lld\n",
-                (long long)(int)offsetof(struct mdt_rec_reint, rr_padding_2));
-       LASSERTF((int)sizeof(((struct mdt_rec_reint *)0)->rr_padding_2) == 4, "found %lld\n",
-                (long long)(int)sizeof(((struct mdt_rec_reint *)0)->rr_padding_2));
-       LASSERTF((int)offsetof(struct mdt_rec_reint, rr_padding_3) == 128, "found %lld\n",
-                (long long)(int)offsetof(struct mdt_rec_reint, rr_padding_3));
-       LASSERTF((int)sizeof(((struct mdt_rec_reint *)0)->rr_padding_3) == 4, "found %lld\n",
-                (long long)(int)sizeof(((struct mdt_rec_reint *)0)->rr_padding_3));
+       LASSERTF((int)offsetof(struct mdt_rec_reint, rr_flags_h) == 124, "found %lld\n",
+                (long long)(int)offsetof(struct mdt_rec_reint, rr_flags_h));
+       LASSERTF((int)sizeof(((struct mdt_rec_reint *)0)->rr_flags_h) == 4, "found %lld\n",
+                (long long)(int)sizeof(((struct mdt_rec_reint *)0)->rr_flags_h));
+       LASSERTF((int)offsetof(struct mdt_rec_reint, rr_umask) == 128, "found %lld\n",
+                (long long)(int)offsetof(struct mdt_rec_reint, rr_umask));
+       LASSERTF((int)sizeof(((struct mdt_rec_reint *)0)->rr_umask) == 4, "found %lld\n",
+                (long long)(int)sizeof(((struct mdt_rec_reint *)0)->rr_umask));
        LASSERTF((int)offsetof(struct mdt_rec_reint, rr_padding_4) == 132, "found %lld\n",
                 (long long)(int)offsetof(struct mdt_rec_reint, rr_padding_4));
        LASSERTF((int)sizeof(((struct mdt_rec_reint *)0)->rr_padding_4) == 4, "found %lld\n",
        LASSERTF((int)offsetof(struct mdt_rec_reint, rr_padding_4) == 132, "found %lld\n",
                 (long long)(int)offsetof(struct mdt_rec_reint, rr_padding_4));
        LASSERTF((int)sizeof(((struct mdt_rec_reint *)0)->rr_padding_4) == 4, "found %lld\n",
index f1a75cd..f697364 100644 (file)
@@ -1173,8 +1173,8 @@ check_mdt_rec_reint(void)
        CHECK_MEMBER(mdt_rec_reint, rr_bias);
        CHECK_MEMBER(mdt_rec_reint, rr_mode);
        CHECK_MEMBER(mdt_rec_reint, rr_flags);
        CHECK_MEMBER(mdt_rec_reint, rr_bias);
        CHECK_MEMBER(mdt_rec_reint, rr_mode);
        CHECK_MEMBER(mdt_rec_reint, rr_flags);
-       CHECK_MEMBER(mdt_rec_reint, rr_padding_2);
-       CHECK_MEMBER(mdt_rec_reint, rr_padding_3);
+       CHECK_MEMBER(mdt_rec_reint, rr_flags_h);
+       CHECK_MEMBER(mdt_rec_reint, rr_umask);
        CHECK_MEMBER(mdt_rec_reint, rr_padding_4);
 }
 
        CHECK_MEMBER(mdt_rec_reint, rr_padding_4);
 }
 
index 87dc49b..c35024c 100644 (file)
@@ -62,8 +62,8 @@ void lustre_assert_wire_constants(void)
 {
         /* Wire protocol assertions generated by 'wirecheck'
          * (make -C lustre/utils newwiretest)
 {
         /* Wire protocol assertions generated by 'wirecheck'
          * (make -C lustre/utils newwiretest)
-         * running on Linux node7 2.6.32 #1 SMP Tue Dec 18 04:02:25 MSK 2012 x86_64 x86_64 x86_64 GNU
-         * with gcc version 4.4.6 20120305 (Red Hat 4.4.6-4) (GCC)  */
+         * running on Linux deva 2.6.32.279.lustre #5 SMP Tue Apr 9 22:52:17 CST 2013 x86_64 x86_64 x
+         * with gcc version 4.4.4 20100726 (Red Hat 4.4.4-13) (GCC)  */
 
 
        /* Constants... */
 
 
        /* Constants... */
@@ -2825,14 +2825,14 @@ void lustre_assert_wire_constants(void)
                 (long long)(int)offsetof(struct mdt_rec_reint, rr_flags));
        LASSERTF((int)sizeof(((struct mdt_rec_reint *)0)->rr_flags) == 4, "found %lld\n",
                 (long long)(int)sizeof(((struct mdt_rec_reint *)0)->rr_flags));
                 (long long)(int)offsetof(struct mdt_rec_reint, rr_flags));
        LASSERTF((int)sizeof(((struct mdt_rec_reint *)0)->rr_flags) == 4, "found %lld\n",
                 (long long)(int)sizeof(((struct mdt_rec_reint *)0)->rr_flags));
-       LASSERTF((int)offsetof(struct mdt_rec_reint, rr_padding_2) == 124, "found %lld\n",
-                (long long)(int)offsetof(struct mdt_rec_reint, rr_padding_2));
-       LASSERTF((int)sizeof(((struct mdt_rec_reint *)0)->rr_padding_2) == 4, "found %lld\n",
-                (long long)(int)sizeof(((struct mdt_rec_reint *)0)->rr_padding_2));
-       LASSERTF((int)offsetof(struct mdt_rec_reint, rr_padding_3) == 128, "found %lld\n",
-                (long long)(int)offsetof(struct mdt_rec_reint, rr_padding_3));
-       LASSERTF((int)sizeof(((struct mdt_rec_reint *)0)->rr_padding_3) == 4, "found %lld\n",
-                (long long)(int)sizeof(((struct mdt_rec_reint *)0)->rr_padding_3));
+       LASSERTF((int)offsetof(struct mdt_rec_reint, rr_flags_h) == 124, "found %lld\n",
+                (long long)(int)offsetof(struct mdt_rec_reint, rr_flags_h));
+       LASSERTF((int)sizeof(((struct mdt_rec_reint *)0)->rr_flags_h) == 4, "found %lld\n",
+                (long long)(int)sizeof(((struct mdt_rec_reint *)0)->rr_flags_h));
+       LASSERTF((int)offsetof(struct mdt_rec_reint, rr_umask) == 128, "found %lld\n",
+                (long long)(int)offsetof(struct mdt_rec_reint, rr_umask));
+       LASSERTF((int)sizeof(((struct mdt_rec_reint *)0)->rr_umask) == 4, "found %lld\n",
+                (long long)(int)sizeof(((struct mdt_rec_reint *)0)->rr_umask));
        LASSERTF((int)offsetof(struct mdt_rec_reint, rr_padding_4) == 132, "found %lld\n",
                 (long long)(int)offsetof(struct mdt_rec_reint, rr_padding_4));
        LASSERTF((int)sizeof(((struct mdt_rec_reint *)0)->rr_padding_4) == 4, "found %lld\n",
        LASSERTF((int)offsetof(struct mdt_rec_reint, rr_padding_4) == 132, "found %lld\n",
                 (long long)(int)offsetof(struct mdt_rec_reint, rr_padding_4));
        LASSERTF((int)sizeof(((struct mdt_rec_reint *)0)->rr_padding_4) == 4, "found %lld\n",