Whamcloud - gitweb
branch: HEAD
authorericm <ericm>
Fri, 14 Nov 2008 19:54:21 +0000 (19:54 +0000)
committerericm <ericm>
Fri, 14 Nov 2008 19:54:21 +0000 (19:54 +0000)
reserve some space in mdt_body and mdt_rec_xxx structures and add
MDS_SETATTR64_REC to allow possible expansion of uid/gid to 64 bits
in the future.
b=17601
r=adilger
r=huanghua
r=fanyong

lustre/include/lustre/lustre_idl.h
lustre/lov/lov_log.c
lustre/mdd/mdd_lov.c
lustre/obdclass/llog_swab.c
lustre/obdfilter/filter_log.c
lustre/ptlrpc/pack_generic.c
lustre/ptlrpc/wiretest.c
lustre/utils/wirecheck.c
lustre/utils/wiretest.c

index 4169b19..fbb1af2 100644 (file)
@@ -1190,6 +1190,12 @@ struct mdt_body {
         __u32          max_mdsize;
         __u32          max_cookiesize;
         __u32          padding_4; /* also fix lustre_swab_mdt_body */
+        __u64          padding_5;
+        __u64          padding_6;
+        __u64          padding_7;
+        __u64          padding_8;
+        __u64          padding_9;
+        __u64          padding_10;
 };
 
 struct mds_body {
@@ -1309,11 +1315,15 @@ extern void lustre_swab_mds_rec_setattr (struct mds_rec_setattr *sa);
 
 struct mdt_rec_setattr {
         __u32           sa_opcode;
+        __u32           sa_cap;
         __u32           sa_fsuid;
+        __u32           sa_fsuid_h;
         __u32           sa_fsgid;
-        __u32           sa_cap;
+        __u32           sa_fsgid_h;
         __u32           sa_suppgid;
+        __u32           sa_suppgid_h;
         __u32           sa_padding_1;
+        __u32           sa_padding_1_h;
         struct lu_fid   sa_fid;
         __u64           sa_valid;
         __u32           sa_uid;
@@ -1451,11 +1461,15 @@ extern void lustre_swab_mds_rec_create (struct mds_rec_create *cr);
 
 struct mdt_rec_create {
         __u32           cr_opcode;
+        __u32           cr_cap;
         __u32           cr_fsuid;
+        __u32           cr_fsuid_h;
         __u32           cr_fsgid;
-        __u32           cr_cap;
+        __u32           cr_fsgid_h;
         __u32           cr_suppgid1;
+        __u32           cr_suppgid1_h;
         __u32           cr_suppgid2;
+        __u32           cr_suppgid2_h;
         struct lu_fid   cr_fid1;
         struct lu_fid   cr_fid2;
         struct lustre_handle cr_old_handle; /* u64 handle in case of open replay */
@@ -1493,11 +1507,15 @@ extern void lustre_swab_mds_rec_link (struct mds_rec_link *lk);
 
 struct mdt_rec_link {
         __u32           lk_opcode;
+        __u32           lk_cap;
         __u32           lk_fsuid;
+        __u32           lk_fsuid_h;
         __u32           lk_fsgid;
-        __u32           lk_cap;
+        __u32           lk_fsgid_h;
         __u32           lk_suppgid1;
+        __u32           lk_suppgid1_h;
         __u32           lk_suppgid2;
+        __u32           lk_suppgid2_h;
         struct lu_fid   lk_fid1;
         struct lu_fid   lk_fid2;
         __u64           lk_time;
@@ -1533,11 +1551,15 @@ extern void lustre_swab_mds_rec_unlink (struct mds_rec_unlink *ul);
 
 struct mdt_rec_unlink {
         __u32           ul_opcode;
+        __u32           ul_cap;
         __u32           ul_fsuid;
+        __u32           ul_fsuid_h;
         __u32           ul_fsgid;
-        __u32           ul_cap;
+        __u32           ul_fsgid_h;
         __u32           ul_suppgid1;
+        __u32           ul_suppgid1_h;
         __u32           ul_suppgid2;
+        __u32           ul_suppgid2_h;
         struct lu_fid   ul_fid1;
         struct lu_fid   ul_fid2;
         __u64           ul_time;
@@ -1573,11 +1595,15 @@ extern void lustre_swab_mds_rec_rename (struct mds_rec_rename *rn);
 
 struct mdt_rec_rename {
         __u32           rn_opcode;
+        __u32           rn_cap;
         __u32           rn_fsuid;
+        __u32           rn_fsuid_h;
         __u32           rn_fsgid;
-        __u32           rn_cap;
+        __u32           rn_fsgid_h;
         __u32           rn_suppgid1;
+        __u32           rn_suppgid1_h;
         __u32           rn_suppgid2;
+        __u32           rn_suppgid2_h;
         struct lu_fid   rn_fid1;
         struct lu_fid   rn_fid2;
         __u64           rn_time;
@@ -1595,11 +1621,15 @@ struct mdt_rec_rename {
 
 struct mdt_rec_setxattr {
         __u32           sx_opcode;
+        __u32           sx_cap;
         __u32           sx_fsuid;
+        __u32           sx_fsuid_h;
         __u32           sx_fsgid;
-        __u32           sx_cap;
+        __u32           sx_fsgid_h;
         __u32           sx_suppgid1;
+        __u32           sx_suppgid1_h;
         __u32           sx_suppgid2;
+        __u32           sx_suppgid2_h;
         struct lu_fid   sx_fid;
         __u64           sx_padding_1; /* These three members are lu_fid size */
         __u32           sx_padding_2;
@@ -1619,11 +1649,15 @@ struct mdt_rec_setxattr {
 
 struct mdt_rec_reint {
         __u32           rr_opcode;
+        __u32           rr_cap;
         __u32           rr_fsuid;
+        __u32           rr_fsuid_h;
         __u32           rr_fsgid;
-        __u32           rr_cap;
+        __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;
         __u64           rr_mtime;
@@ -1963,6 +1997,7 @@ typedef enum {
         OST_RAID1_REC    = LLOG_OP_MAGIC | 0x01000,
         MDS_UNLINK_REC   = LLOG_OP_MAGIC | 0x10000 | (MDS_REINT << 8) | REINT_UNLINK,
         MDS_SETATTR_REC  = LLOG_OP_MAGIC | 0x10000 | (MDS_REINT << 8) | REINT_SETATTR,
+        MDS_SETATTR64_REC= LLOG_OP_MAGIC | 0x90000 | (MDS_REINT << 8) | REINT_SETATTR,
         OBD_CFG_REC      = LLOG_OP_MAGIC | 0x20000,
         PTL_CFG_REC      = LLOG_OP_MAGIC | 0x30000, /* obsolete */
         LLOG_GEN_REC     = LLOG_OP_MAGIC | 0x40000,
@@ -2059,6 +2094,18 @@ struct llog_setattr_rec {
         struct llog_rec_tail    lsr_tail;
 } __attribute__((packed));
 
+struct llog_setattr64_rec {
+        struct llog_rec_hdr     lsr_hdr;
+        obd_id                  lsr_oid;
+        obd_count               lsr_ogen;
+        __u32                   padding;
+        __u32                   lsr_uid;
+        __u32                   lsr_uid_h;
+        __u32                   lsr_gid;
+        __u32                   lsr_gid_h;
+        struct llog_rec_tail    lsr_tail;
+} __attribute__((packed));
+
 struct llog_size_change_rec {
         struct llog_rec_hdr     lsc_hdr;
         struct ll_fid           lsc_fid;
index ea45e84..223234b 100644 (file)
@@ -101,6 +101,12 @@ static int lov_llog_origin_add(struct llog_ctxt *ctxt, struct llog_rec_hdr *rec,
                         lsr->lsr_ogen = loi->loi_gr;
                         break;
                 }
+                case MDS_SETATTR64_REC: {
+                        struct llog_setattr64_rec *lsr = (struct llog_setattr64_rec *)rec;
+                        lsr->lsr_oid = loi->loi_id;
+                        lsr->lsr_ogen = loi->loi_gr;
+                        break;
+                }
                 default:
                         break;
                 }
index 3789019..38bc569 100644 (file)
@@ -623,7 +623,7 @@ int mdd_log_op_setattr(struct obd_device *obd, __u32 uid, __u32 gid,
 {
         struct mds_obd *mds = &obd->u.mds;
         struct lov_stripe_md *lsm = NULL;
-        struct llog_setattr_rec *lsr;
+        struct llog_setattr64_rec *lsr;
         struct llog_ctxt *ctxt;
         int rc;
         ENTRY;
@@ -645,7 +645,7 @@ int mdd_log_op_setattr(struct obd_device *obd, __u32 uid, __u32 gid,
 
         /* prepare setattr log record */
         lsr->lsr_hdr.lrh_len = lsr->lsr_tail.lrt_len = sizeof(*lsr);
-        lsr->lsr_hdr.lrh_type = MDS_SETATTR_REC;
+        lsr->lsr_hdr.lrh_type = MDS_SETATTR64_REC;
         lsr->lsr_uid = uid;
         lsr->lsr_gid = gid;
 
index d91c1df..df515ee 100644 (file)
@@ -154,6 +154,17 @@ void lustre_swab_llog_rec(struct llog_rec_hdr *rec, struct llog_rec_tail *tail)
                 break;
         }
 
+        case MDS_SETATTR64_REC: {
+                struct llog_setattr64_rec *lsr = (struct llog_setattr64_rec *)rec;
+
+                __swab64s(&lsr->lsr_oid);
+                __swab32s(&lsr->lsr_ogen);
+                __swab32s(&lsr->lsr_uid);
+                __swab32s(&lsr->lsr_gid);
+
+                break;
+        }
+
         case OBD_CFG_REC:
         case PTL_CFG_REC:                       /* obsolete */
                 /* these are swabbed as they are consumed */
index 2e1faf0..0e769ad 100644 (file)
@@ -195,24 +195,34 @@ static int filter_recov_log_setattr_cb(struct llog_ctxt *ctxt,
 {
         struct obd_device *obd = ctxt->loc_obd;
         struct obd_export *exp = obd->obd_self_export;
-        struct llog_setattr_rec *lsr;
         struct obd_info oinfo = { { { 0 } } };
         obd_id oid;
         int rc = 0;
         ENTRY;
 
-        lsr = (struct llog_setattr_rec *)rec;
         OBDO_ALLOC(oinfo.oi_oa);
         if (oinfo.oi_oa == NULL)
                 RETURN(-ENOMEM);
 
+        if (rec->lrh_type == MDS_SETATTR_REC) {
+                struct llog_setattr_rec *lsr = (struct llog_setattr_rec *)rec;
+
+                oinfo.oi_oa->o_id = lsr->lsr_oid;
+                oinfo.oi_oa->o_gr = lsr->lsr_ogen;
+                oinfo.oi_oa->o_uid = lsr->lsr_uid;
+                oinfo.oi_oa->o_gid = lsr->lsr_gid;
+        } else {
+                struct llog_setattr64_rec *lsr = (struct llog_setattr64_rec *)rec;
+
+                oinfo.oi_oa->o_id = lsr->lsr_oid;
+                oinfo.oi_oa->o_gr = lsr->lsr_ogen;
+                oinfo.oi_oa->o_uid = lsr->lsr_uid;
+                oinfo.oi_oa->o_gid = lsr->lsr_gid;
+        }
+
         oinfo.oi_oa->o_valid |= (OBD_MD_FLID | OBD_MD_FLUID | OBD_MD_FLGID |
                                  OBD_MD_FLCOOKIE);
-        oinfo.oi_oa->o_id = lsr->lsr_oid;
-        oinfo.oi_oa->o_gr = lsr->lsr_ogen;
         oinfo.oi_oa->o_valid = OBD_MD_FLID | OBD_MD_FLGROUP;
-        oinfo.oi_oa->o_uid = lsr->lsr_uid;
-        oinfo.oi_oa->o_gid = lsr->lsr_gid;
         oinfo.oi_oa->o_lcookie = *cookie;
         oid = oinfo.oi_oa->o_id;
 
@@ -257,6 +267,7 @@ int filter_recov_log_mds_ost_cb(struct llog_handle *llh,
                 rc = filter_recov_log_unlink_cb(ctxt, rec, &cookie);
                 break;
         case MDS_SETATTR_REC:
+        case MDS_SETATTR64_REC:
                 rc = filter_recov_log_setattr_cb(ctxt, rec, &cookie);
                 break;
         case LLOG_GEN_REC: {
index ff856cd..5cf4caa 100644 (file)
@@ -1892,12 +1892,15 @@ void lustre_swab_mds_rec_rename (struct mds_rec_rename *rn)
 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);
-        __swab32s (&rr->rr_cap);
+        /* rr_fsgid_h is unused */
         __swab32s (&rr->rr_suppgid1);
+        /* rr_suppgid1_h is unused */
         __swab32s (&rr->rr_suppgid2);
-        /* handle is opaque */
+        /* rr_suppgid2_h is unused */
         lustre_swab_lu_fid (&rr->rr_fid1);
         lustre_swab_lu_fid (&rr->rr_fid2);
         __swab64s (&rr->rr_mtime);
index 26c5fb3..b1308fb 100644 (file)
@@ -66,8 +66,8 @@ void lustre_assert_wire_constants(void)
 {
         /* Wire protocol assertions generated by 'wirecheck'
          * (make -C lustre/utils newwiretest)
-         * running on Linux xlab.hostel 2.6.23.15-80.fc7 #1 SMP Sun Feb 10 17:29:10 EST 2008 i686 i68
-         * with gcc version 3.4.6 20060404 (Red Hat 3.4.6-7) */
+         * running on Linux vb1 2.6.18-build.1 #1 SMP Thu Mar 27 14:34:21 MDT 2008 i686 i686 i386 GNU
+         * with gcc version 4.1.2 20070626 (Red Hat 4.1.2-14) */
 
 
         /* Constants... */
@@ -700,6 +700,67 @@ void lustre_assert_wire_constants(void)
         LASSERTF(LOV_PATTERN_RAID1 == 2, " found %lld\n",
                  (long long)LOV_PATTERN_RAID1);
 
+        /* Checks for struct lov_mds_md_v3 */
+        LASSERTF((int)sizeof(struct lov_mds_md_v3) == 48, " found %lld\n",
+                 (long long)(int)sizeof(struct lov_mds_md_v3));
+        LASSERTF((int)offsetof(struct lov_mds_md_v3, lmm_magic) == 0, " found %lld\n",
+                 (long long)(int)offsetof(struct lov_mds_md_v3, lmm_magic));
+        LASSERTF((int)sizeof(((struct lov_mds_md_v3 *)0)->lmm_magic) == 4, " found %lld\n",
+                 (long long)(int)sizeof(((struct lov_mds_md_v3 *)0)->lmm_magic));
+        LASSERTF((int)offsetof(struct lov_mds_md_v3, lmm_pattern) == 4, " found %lld\n",
+                 (long long)(int)offsetof(struct lov_mds_md_v3, lmm_pattern));
+        LASSERTF((int)sizeof(((struct lov_mds_md_v3 *)0)->lmm_pattern) == 4, " found %lld\n",
+                 (long long)(int)sizeof(((struct lov_mds_md_v3 *)0)->lmm_pattern));
+        LASSERTF((int)offsetof(struct lov_mds_md_v3, lmm_object_id) == 8, " found %lld\n",
+                 (long long)(int)offsetof(struct lov_mds_md_v3, lmm_object_id));
+        LASSERTF((int)sizeof(((struct lov_mds_md_v3 *)0)->lmm_object_id) == 8, " found %lld\n",
+                 (long long)(int)sizeof(((struct lov_mds_md_v3 *)0)->lmm_object_id));
+        LASSERTF((int)offsetof(struct lov_mds_md_v3, lmm_object_gr) == 16, " found %lld\n",
+                 (long long)(int)offsetof(struct lov_mds_md_v3, lmm_object_gr));
+        LASSERTF((int)sizeof(((struct lov_mds_md_v3 *)0)->lmm_object_gr) == 8, " found %lld\n",
+                 (long long)(int)sizeof(((struct lov_mds_md_v3 *)0)->lmm_object_gr));
+        LASSERTF((int)offsetof(struct lov_mds_md_v3, lmm_stripe_size) == 24, " found %lld\n",
+                 (long long)(int)offsetof(struct lov_mds_md_v3, lmm_stripe_size));
+        LASSERTF((int)sizeof(((struct lov_mds_md_v3 *)0)->lmm_stripe_size) == 4, " found %lld\n",
+                 (long long)(int)sizeof(((struct lov_mds_md_v3 *)0)->lmm_stripe_size));
+        LASSERTF((int)offsetof(struct lov_mds_md_v3, lmm_stripe_count) == 28, " found %lld\n",
+                 (long long)(int)offsetof(struct lov_mds_md_v3, lmm_stripe_count));
+        LASSERTF((int)sizeof(((struct lov_mds_md_v3 *)0)->lmm_stripe_count) == 4, " found %lld\n",
+                 (long long)(int)sizeof(((struct lov_mds_md_v3 *)0)->lmm_stripe_count));
+        LASSERTF((int)offsetof(struct lov_mds_md_v3, lmm_pool_name) == 32, " found %lld\n",
+                 (long long)(int)offsetof(struct lov_mds_md_v3, lmm_pool_name));
+        LASSERTF((int)sizeof(((struct lov_mds_md_v3 *)0)->lmm_pool_name) == 16, " found %lld\n",
+                 (long long)(int)sizeof(((struct lov_mds_md_v3 *)0)->lmm_pool_name));
+        LASSERTF((int)offsetof(struct lov_mds_md_v3, lmm_objects) == 48, " found %lld\n",
+                 (long long)(int)offsetof(struct lov_mds_md_v3, lmm_objects));
+        LASSERTF((int)sizeof(((struct lov_mds_md_v3 *)0)->lmm_objects) == 0, " found %lld\n",
+                 (long long)(int)sizeof(((struct lov_mds_md_v3 *)0)->lmm_objects));
+
+        /* Checks for struct lov_ost_data_v1 */
+        LASSERTF((int)sizeof(struct lov_ost_data_v1) == 24, " found %lld\n",
+                 (long long)(int)sizeof(struct lov_ost_data_v1));
+        LASSERTF((int)offsetof(struct lov_ost_data_v1, l_object_id) == 0, " found %lld\n",
+                 (long long)(int)offsetof(struct lov_ost_data_v1, l_object_id));
+        LASSERTF((int)sizeof(((struct lov_ost_data_v1 *)0)->l_object_id) == 8, " found %lld\n",
+                 (long long)(int)sizeof(((struct lov_ost_data_v1 *)0)->l_object_id));
+        LASSERTF((int)offsetof(struct lov_ost_data_v1, l_object_gr) == 8, " found %lld\n",
+                 (long long)(int)offsetof(struct lov_ost_data_v1, l_object_gr));
+        LASSERTF((int)sizeof(((struct lov_ost_data_v1 *)0)->l_object_gr) == 8, " found %lld\n",
+                 (long long)(int)sizeof(((struct lov_ost_data_v1 *)0)->l_object_gr));
+        LASSERTF((int)offsetof(struct lov_ost_data_v1, l_ost_gen) == 16, " found %lld\n",
+                 (long long)(int)offsetof(struct lov_ost_data_v1, l_ost_gen));
+        LASSERTF((int)sizeof(((struct lov_ost_data_v1 *)0)->l_ost_gen) == 4, " found %lld\n",
+                 (long long)(int)sizeof(((struct lov_ost_data_v1 *)0)->l_ost_gen));
+        LASSERTF((int)offsetof(struct lov_ost_data_v1, l_ost_idx) == 20, " found %lld\n",
+                 (long long)(int)offsetof(struct lov_ost_data_v1, l_ost_idx));
+        LASSERTF((int)sizeof(((struct lov_ost_data_v1 *)0)->l_ost_idx) == 4, " found %lld\n",
+                 (long long)(int)sizeof(((struct lov_ost_data_v1 *)0)->l_ost_idx));
+        CLASSERT(LOV_MAGIC_V3 == 0x0BD30BD0);
+        LASSERTF(LOV_PATTERN_RAID0 == 1, " found %lld\n",
+                 (long long)LOV_PATTERN_RAID0);
+        LASSERTF(LOV_PATTERN_RAID1 == 2, " found %lld\n",
+                 (long long)LOV_PATTERN_RAID1);
+
         /* Checks for struct lov_mds_md_join */
         LASSERTF((int)sizeof(struct lov_mds_md_join) == 56, " found %lld\n",
                  (long long)(int)sizeof(struct lov_mds_md_join));
@@ -1584,6 +1645,38 @@ void lustre_assert_wire_constants(void)
         LASSERTF((int)sizeof(((struct ost_lvb *)0)->lvb_blocks) == 8, " found %lld\n",
                  (long long)(int)sizeof(((struct ost_lvb *)0)->lvb_blocks));
 
+        /* Checks for struct cfg_marker */
+        LASSERTF((int)sizeof(struct cfg_marker) == 160, " found %lld\n",
+                 (long long)(int)sizeof(struct cfg_marker));
+        LASSERTF((int)offsetof(struct cfg_marker, cm_step) == 0, " found %lld\n",
+                 (long long)(int)offsetof(struct cfg_marker, cm_step));
+        LASSERTF((int)sizeof(((struct cfg_marker *)0)->cm_step) == 4, " found %lld\n",
+                 (long long)(int)sizeof(((struct cfg_marker *)0)->cm_step));
+        LASSERTF((int)offsetof(struct cfg_marker, cm_flags) == 4, " found %lld\n",
+                 (long long)(int)offsetof(struct cfg_marker, cm_flags));
+        LASSERTF((int)sizeof(((struct cfg_marker *)0)->cm_flags) == 4, " found %lld\n",
+                 (long long)(int)sizeof(((struct cfg_marker *)0)->cm_flags));
+        LASSERTF((int)offsetof(struct cfg_marker, cm_vers) == 8, " found %lld\n",
+                 (long long)(int)offsetof(struct cfg_marker, cm_vers));
+        LASSERTF((int)sizeof(((struct cfg_marker *)0)->cm_vers) == 4, " found %lld\n",
+                 (long long)(int)sizeof(((struct cfg_marker *)0)->cm_vers));
+        LASSERTF((int)offsetof(struct cfg_marker, cm_createtime) == 16, " found %lld\n",
+                 (long long)(int)offsetof(struct cfg_marker, cm_createtime));
+        LASSERTF((int)sizeof(((struct cfg_marker *)0)->cm_createtime) == 8, " found %lld\n",
+                 (long long)(int)sizeof(((struct cfg_marker *)0)->cm_createtime));
+        LASSERTF((int)offsetof(struct cfg_marker, cm_canceltime) == 24, " found %lld\n",
+                 (long long)(int)offsetof(struct cfg_marker, cm_canceltime));
+        LASSERTF((int)sizeof(((struct cfg_marker *)0)->cm_canceltime) == 8, " found %lld\n",
+                 (long long)(int)sizeof(((struct cfg_marker *)0)->cm_canceltime));
+        LASSERTF((int)offsetof(struct cfg_marker, cm_tgtname) == 32, " found %lld\n",
+                 (long long)(int)offsetof(struct cfg_marker, cm_tgtname));
+        LASSERTF((int)sizeof(((struct cfg_marker *)0)->cm_tgtname) == 64, " found %lld\n",
+                 (long long)(int)sizeof(((struct cfg_marker *)0)->cm_tgtname));
+        LASSERTF((int)offsetof(struct cfg_marker, cm_comment) == 96, " found %lld\n",
+                 (long long)(int)offsetof(struct cfg_marker, cm_comment));
+        LASSERTF((int)sizeof(((struct cfg_marker *)0)->cm_comment) == 64, " found %lld\n",
+                 (long long)(int)sizeof(((struct cfg_marker *)0)->cm_comment));
+
         /* Checks for struct llog_logid */
         LASSERTF((int)sizeof(struct llog_logid) == 20, " found %lld\n",
                  (long long)(int)sizeof(struct llog_logid));
@@ -1802,6 +1895,46 @@ void lustre_assert_wire_constants(void)
         LASSERTF((int)sizeof(((struct llog_setattr_rec *)0)->lsr_tail) == 8, " found %lld\n",
                  (long long)(int)sizeof(((struct llog_setattr_rec *)0)->lsr_tail));
 
+        /* Checks for struct llog_setattr64_rec */
+        LASSERTF((int)sizeof(struct llog_setattr64_rec) == 56, " found %lld\n",
+                 (long long)(int)sizeof(struct llog_setattr64_rec));
+        LASSERTF((int)offsetof(struct llog_setattr64_rec, lsr_hdr) == 0, " found %lld\n",
+                 (long long)(int)offsetof(struct llog_setattr64_rec, lsr_hdr));
+        LASSERTF((int)sizeof(((struct llog_setattr64_rec *)0)->lsr_hdr) == 16, " found %lld\n",
+                 (long long)(int)sizeof(((struct llog_setattr64_rec *)0)->lsr_hdr));
+        LASSERTF((int)offsetof(struct llog_setattr64_rec, lsr_oid) == 16, " found %lld\n",
+                 (long long)(int)offsetof(struct llog_setattr64_rec, lsr_oid));
+        LASSERTF((int)sizeof(((struct llog_setattr64_rec *)0)->lsr_oid) == 8, " found %lld\n",
+                 (long long)(int)sizeof(((struct llog_setattr64_rec *)0)->lsr_oid));
+        LASSERTF((int)offsetof(struct llog_setattr64_rec, lsr_ogen) == 24, " found %lld\n",
+                 (long long)(int)offsetof(struct llog_setattr64_rec, lsr_ogen));
+        LASSERTF((int)sizeof(((struct llog_setattr64_rec *)0)->lsr_ogen) == 4, " found %lld\n",
+                 (long long)(int)sizeof(((struct llog_setattr64_rec *)0)->lsr_ogen));
+        LASSERTF((int)offsetof(struct llog_setattr64_rec, padding) == 28, " found %lld\n",
+                 (long long)(int)offsetof(struct llog_setattr64_rec, padding));
+        LASSERTF((int)sizeof(((struct llog_setattr64_rec *)0)->padding) == 4, " found %lld\n",
+                 (long long)(int)sizeof(((struct llog_setattr64_rec *)0)->padding));
+        LASSERTF((int)offsetof(struct llog_setattr64_rec, lsr_uid) == 32, " found %lld\n",
+                 (long long)(int)offsetof(struct llog_setattr64_rec, lsr_uid));
+        LASSERTF((int)sizeof(((struct llog_setattr64_rec *)0)->lsr_uid) == 4, " found %lld\n",
+                 (long long)(int)sizeof(((struct llog_setattr64_rec *)0)->lsr_uid));
+        LASSERTF((int)offsetof(struct llog_setattr64_rec, lsr_uid_h) == 36, " found %lld\n",
+                 (long long)(int)offsetof(struct llog_setattr64_rec, lsr_uid_h));
+        LASSERTF((int)sizeof(((struct llog_setattr64_rec *)0)->lsr_uid_h) == 4, " found %lld\n",
+                 (long long)(int)sizeof(((struct llog_setattr64_rec *)0)->lsr_uid_h));
+        LASSERTF((int)offsetof(struct llog_setattr64_rec, lsr_gid) == 40, " found %lld\n",
+                 (long long)(int)offsetof(struct llog_setattr64_rec, lsr_gid));
+        LASSERTF((int)sizeof(((struct llog_setattr64_rec *)0)->lsr_gid) == 4, " found %lld\n",
+                 (long long)(int)sizeof(((struct llog_setattr64_rec *)0)->lsr_gid));
+        LASSERTF((int)offsetof(struct llog_setattr64_rec, lsr_gid_h) == 44, " found %lld\n",
+                 (long long)(int)offsetof(struct llog_setattr64_rec, lsr_gid_h));
+        LASSERTF((int)sizeof(((struct llog_setattr64_rec *)0)->lsr_gid_h) == 4, " found %lld\n",
+                 (long long)(int)sizeof(((struct llog_setattr64_rec *)0)->lsr_gid_h));
+        LASSERTF((int)offsetof(struct llog_setattr64_rec, lsr_tail) == 48, " found %lld\n",
+                 (long long)(int)offsetof(struct llog_setattr64_rec, lsr_tail));
+        LASSERTF((int)sizeof(((struct llog_setattr64_rec *)0)->lsr_tail) == 8, " found %lld\n",
+                 (long long)(int)sizeof(((struct llog_setattr64_rec *)0)->lsr_tail));
+
         /* Checks for struct llog_size_change_rec */
         LASSERTF((int)sizeof(struct llog_size_change_rec) == 48, " found %lld\n",
                  (long long)(int)sizeof(struct llog_size_change_rec));
index 99c80a7..4ca8ec5 100644 (file)
@@ -914,6 +914,22 @@ check_llog_setattr_rec(void)
 }
 
 static void
+check_llog_setattr64_rec(void)
+{
+        BLANK_LINE();
+        CHECK_STRUCT(llog_setattr64_rec);
+        CHECK_MEMBER(llog_setattr64_rec, lsr_hdr);
+        CHECK_MEMBER(llog_setattr64_rec, lsr_oid);
+        CHECK_MEMBER(llog_setattr64_rec, lsr_ogen);
+        CHECK_MEMBER(llog_setattr64_rec, padding);
+        CHECK_MEMBER(llog_setattr64_rec, lsr_uid);
+        CHECK_MEMBER(llog_setattr64_rec, lsr_uid_h);
+        CHECK_MEMBER(llog_setattr64_rec, lsr_gid);
+        CHECK_MEMBER(llog_setattr64_rec, lsr_gid_h);
+        CHECK_MEMBER(llog_setattr64_rec, lsr_tail);
+}
+
+static void
 check_llog_size_change_rec(void)
 {
         BLANK_LINE();
@@ -1384,6 +1400,7 @@ main(int argc, char **argv)
         check_llog_orphan_rec();
         check_llog_unlink_rec();
         check_llog_setattr_rec();
+        check_llog_setattr64_rec();
         check_llog_size_change_rec();
         check_llog_gen();
         check_llog_gen_rec();
index a48ed1e..e56dd28 100644 (file)
@@ -63,8 +63,8 @@ void lustre_assert_wire_constants(void)
 {
         /* Wire protocol assertions generated by 'wirecheck'
          * (make -C lustre/utils newwiretest)
-         * running on Linux xlab.hostel 2.6.23.15-80.fc7 #1 SMP Sun Feb 10 17:29:10 EST 2008 i686 i68
-         * with gcc version 3.4.6 20060404 (Red Hat 3.4.6-7) */
+         * running on Linux vb1 2.6.18-build.1 #1 SMP Thu Mar 27 14:34:21 MDT 2008 i686 i686 i386 GNU
+         * with gcc version 4.1.2 20070626 (Red Hat 4.1.2-14) */
 
 
         /* Constants... */
@@ -697,6 +697,67 @@ void lustre_assert_wire_constants(void)
         LASSERTF(LOV_PATTERN_RAID1 == 2, " found %lld\n",
                  (long long)LOV_PATTERN_RAID1);
 
+        /* Checks for struct lov_mds_md_v3 */
+        LASSERTF((int)sizeof(struct lov_mds_md_v3) == 48, " found %lld\n",
+                 (long long)(int)sizeof(struct lov_mds_md_v3));
+        LASSERTF((int)offsetof(struct lov_mds_md_v3, lmm_magic) == 0, " found %lld\n",
+                 (long long)(int)offsetof(struct lov_mds_md_v3, lmm_magic));
+        LASSERTF((int)sizeof(((struct lov_mds_md_v3 *)0)->lmm_magic) == 4, " found %lld\n",
+                 (long long)(int)sizeof(((struct lov_mds_md_v3 *)0)->lmm_magic));
+        LASSERTF((int)offsetof(struct lov_mds_md_v3, lmm_pattern) == 4, " found %lld\n",
+                 (long long)(int)offsetof(struct lov_mds_md_v3, lmm_pattern));
+        LASSERTF((int)sizeof(((struct lov_mds_md_v3 *)0)->lmm_pattern) == 4, " found %lld\n",
+                 (long long)(int)sizeof(((struct lov_mds_md_v3 *)0)->lmm_pattern));
+        LASSERTF((int)offsetof(struct lov_mds_md_v3, lmm_object_id) == 8, " found %lld\n",
+                 (long long)(int)offsetof(struct lov_mds_md_v3, lmm_object_id));
+        LASSERTF((int)sizeof(((struct lov_mds_md_v3 *)0)->lmm_object_id) == 8, " found %lld\n",
+                 (long long)(int)sizeof(((struct lov_mds_md_v3 *)0)->lmm_object_id));
+        LASSERTF((int)offsetof(struct lov_mds_md_v3, lmm_object_gr) == 16, " found %lld\n",
+                 (long long)(int)offsetof(struct lov_mds_md_v3, lmm_object_gr));
+        LASSERTF((int)sizeof(((struct lov_mds_md_v3 *)0)->lmm_object_gr) == 8, " found %lld\n",
+                 (long long)(int)sizeof(((struct lov_mds_md_v3 *)0)->lmm_object_gr));
+        LASSERTF((int)offsetof(struct lov_mds_md_v3, lmm_stripe_size) == 24, " found %lld\n",
+                 (long long)(int)offsetof(struct lov_mds_md_v3, lmm_stripe_size));
+        LASSERTF((int)sizeof(((struct lov_mds_md_v3 *)0)->lmm_stripe_size) == 4, " found %lld\n",
+                 (long long)(int)sizeof(((struct lov_mds_md_v3 *)0)->lmm_stripe_size));
+        LASSERTF((int)offsetof(struct lov_mds_md_v3, lmm_stripe_count) == 28, " found %lld\n",
+                 (long long)(int)offsetof(struct lov_mds_md_v3, lmm_stripe_count));
+        LASSERTF((int)sizeof(((struct lov_mds_md_v3 *)0)->lmm_stripe_count) == 4, " found %lld\n",
+                 (long long)(int)sizeof(((struct lov_mds_md_v3 *)0)->lmm_stripe_count));
+        LASSERTF((int)offsetof(struct lov_mds_md_v3, lmm_pool_name) == 32, " found %lld\n",
+                 (long long)(int)offsetof(struct lov_mds_md_v3, lmm_pool_name));
+        LASSERTF((int)sizeof(((struct lov_mds_md_v3 *)0)->lmm_pool_name) == 16, " found %lld\n",
+                 (long long)(int)sizeof(((struct lov_mds_md_v3 *)0)->lmm_pool_name));
+        LASSERTF((int)offsetof(struct lov_mds_md_v3, lmm_objects) == 48, " found %lld\n",
+                 (long long)(int)offsetof(struct lov_mds_md_v3, lmm_objects));
+        LASSERTF((int)sizeof(((struct lov_mds_md_v3 *)0)->lmm_objects) == 0, " found %lld\n",
+                 (long long)(int)sizeof(((struct lov_mds_md_v3 *)0)->lmm_objects));
+
+        /* Checks for struct lov_ost_data_v1 */
+        LASSERTF((int)sizeof(struct lov_ost_data_v1) == 24, " found %lld\n",
+                 (long long)(int)sizeof(struct lov_ost_data_v1));
+        LASSERTF((int)offsetof(struct lov_ost_data_v1, l_object_id) == 0, " found %lld\n",
+                 (long long)(int)offsetof(struct lov_ost_data_v1, l_object_id));
+        LASSERTF((int)sizeof(((struct lov_ost_data_v1 *)0)->l_object_id) == 8, " found %lld\n",
+                 (long long)(int)sizeof(((struct lov_ost_data_v1 *)0)->l_object_id));
+        LASSERTF((int)offsetof(struct lov_ost_data_v1, l_object_gr) == 8, " found %lld\n",
+                 (long long)(int)offsetof(struct lov_ost_data_v1, l_object_gr));
+        LASSERTF((int)sizeof(((struct lov_ost_data_v1 *)0)->l_object_gr) == 8, " found %lld\n",
+                 (long long)(int)sizeof(((struct lov_ost_data_v1 *)0)->l_object_gr));
+        LASSERTF((int)offsetof(struct lov_ost_data_v1, l_ost_gen) == 16, " found %lld\n",
+                 (long long)(int)offsetof(struct lov_ost_data_v1, l_ost_gen));
+        LASSERTF((int)sizeof(((struct lov_ost_data_v1 *)0)->l_ost_gen) == 4, " found %lld\n",
+                 (long long)(int)sizeof(((struct lov_ost_data_v1 *)0)->l_ost_gen));
+        LASSERTF((int)offsetof(struct lov_ost_data_v1, l_ost_idx) == 20, " found %lld\n",
+                 (long long)(int)offsetof(struct lov_ost_data_v1, l_ost_idx));
+        LASSERTF((int)sizeof(((struct lov_ost_data_v1 *)0)->l_ost_idx) == 4, " found %lld\n",
+                 (long long)(int)sizeof(((struct lov_ost_data_v1 *)0)->l_ost_idx));
+        CLASSERT(LOV_MAGIC_V3 == 0x0BD30BD0);
+        LASSERTF(LOV_PATTERN_RAID0 == 1, " found %lld\n",
+                 (long long)LOV_PATTERN_RAID0);
+        LASSERTF(LOV_PATTERN_RAID1 == 2, " found %lld\n",
+                 (long long)LOV_PATTERN_RAID1);
+
         /* Checks for struct lov_mds_md_join */
         LASSERTF((int)sizeof(struct lov_mds_md_join) == 56, " found %lld\n",
                  (long long)(int)sizeof(struct lov_mds_md_join));
@@ -1581,6 +1642,38 @@ void lustre_assert_wire_constants(void)
         LASSERTF((int)sizeof(((struct ost_lvb *)0)->lvb_blocks) == 8, " found %lld\n",
                  (long long)(int)sizeof(((struct ost_lvb *)0)->lvb_blocks));
 
+        /* Checks for struct cfg_marker */
+        LASSERTF((int)sizeof(struct cfg_marker) == 160, " found %lld\n",
+                 (long long)(int)sizeof(struct cfg_marker));
+        LASSERTF((int)offsetof(struct cfg_marker, cm_step) == 0, " found %lld\n",
+                 (long long)(int)offsetof(struct cfg_marker, cm_step));
+        LASSERTF((int)sizeof(((struct cfg_marker *)0)->cm_step) == 4, " found %lld\n",
+                 (long long)(int)sizeof(((struct cfg_marker *)0)->cm_step));
+        LASSERTF((int)offsetof(struct cfg_marker, cm_flags) == 4, " found %lld\n",
+                 (long long)(int)offsetof(struct cfg_marker, cm_flags));
+        LASSERTF((int)sizeof(((struct cfg_marker *)0)->cm_flags) == 4, " found %lld\n",
+                 (long long)(int)sizeof(((struct cfg_marker *)0)->cm_flags));
+        LASSERTF((int)offsetof(struct cfg_marker, cm_vers) == 8, " found %lld\n",
+                 (long long)(int)offsetof(struct cfg_marker, cm_vers));
+        LASSERTF((int)sizeof(((struct cfg_marker *)0)->cm_vers) == 4, " found %lld\n",
+                 (long long)(int)sizeof(((struct cfg_marker *)0)->cm_vers));
+        LASSERTF((int)offsetof(struct cfg_marker, cm_createtime) == 16, " found %lld\n",
+                 (long long)(int)offsetof(struct cfg_marker, cm_createtime));
+        LASSERTF((int)sizeof(((struct cfg_marker *)0)->cm_createtime) == 8, " found %lld\n",
+                 (long long)(int)sizeof(((struct cfg_marker *)0)->cm_createtime));
+        LASSERTF((int)offsetof(struct cfg_marker, cm_canceltime) == 24, " found %lld\n",
+                 (long long)(int)offsetof(struct cfg_marker, cm_canceltime));
+        LASSERTF((int)sizeof(((struct cfg_marker *)0)->cm_canceltime) == 8, " found %lld\n",
+                 (long long)(int)sizeof(((struct cfg_marker *)0)->cm_canceltime));
+        LASSERTF((int)offsetof(struct cfg_marker, cm_tgtname) == 32, " found %lld\n",
+                 (long long)(int)offsetof(struct cfg_marker, cm_tgtname));
+        LASSERTF((int)sizeof(((struct cfg_marker *)0)->cm_tgtname) == 64, " found %lld\n",
+                 (long long)(int)sizeof(((struct cfg_marker *)0)->cm_tgtname));
+        LASSERTF((int)offsetof(struct cfg_marker, cm_comment) == 96, " found %lld\n",
+                 (long long)(int)offsetof(struct cfg_marker, cm_comment));
+        LASSERTF((int)sizeof(((struct cfg_marker *)0)->cm_comment) == 64, " found %lld\n",
+                 (long long)(int)sizeof(((struct cfg_marker *)0)->cm_comment));
+
         /* Checks for struct llog_logid */
         LASSERTF((int)sizeof(struct llog_logid) == 20, " found %lld\n",
                  (long long)(int)sizeof(struct llog_logid));
@@ -1799,6 +1892,46 @@ void lustre_assert_wire_constants(void)
         LASSERTF((int)sizeof(((struct llog_setattr_rec *)0)->lsr_tail) == 8, " found %lld\n",
                  (long long)(int)sizeof(((struct llog_setattr_rec *)0)->lsr_tail));
 
+        /* Checks for struct llog_setattr64_rec */
+        LASSERTF((int)sizeof(struct llog_setattr64_rec) == 56, " found %lld\n",
+                 (long long)(int)sizeof(struct llog_setattr64_rec));
+        LASSERTF((int)offsetof(struct llog_setattr64_rec, lsr_hdr) == 0, " found %lld\n",
+                 (long long)(int)offsetof(struct llog_setattr64_rec, lsr_hdr));
+        LASSERTF((int)sizeof(((struct llog_setattr64_rec *)0)->lsr_hdr) == 16, " found %lld\n",
+                 (long long)(int)sizeof(((struct llog_setattr64_rec *)0)->lsr_hdr));
+        LASSERTF((int)offsetof(struct llog_setattr64_rec, lsr_oid) == 16, " found %lld\n",
+                 (long long)(int)offsetof(struct llog_setattr64_rec, lsr_oid));
+        LASSERTF((int)sizeof(((struct llog_setattr64_rec *)0)->lsr_oid) == 8, " found %lld\n",
+                 (long long)(int)sizeof(((struct llog_setattr64_rec *)0)->lsr_oid));
+        LASSERTF((int)offsetof(struct llog_setattr64_rec, lsr_ogen) == 24, " found %lld\n",
+                 (long long)(int)offsetof(struct llog_setattr64_rec, lsr_ogen));
+        LASSERTF((int)sizeof(((struct llog_setattr64_rec *)0)->lsr_ogen) == 4, " found %lld\n",
+                 (long long)(int)sizeof(((struct llog_setattr64_rec *)0)->lsr_ogen));
+        LASSERTF((int)offsetof(struct llog_setattr64_rec, padding) == 28, " found %lld\n",
+                 (long long)(int)offsetof(struct llog_setattr64_rec, padding));
+        LASSERTF((int)sizeof(((struct llog_setattr64_rec *)0)->padding) == 4, " found %lld\n",
+                 (long long)(int)sizeof(((struct llog_setattr64_rec *)0)->padding));
+        LASSERTF((int)offsetof(struct llog_setattr64_rec, lsr_uid) == 32, " found %lld\n",
+                 (long long)(int)offsetof(struct llog_setattr64_rec, lsr_uid));
+        LASSERTF((int)sizeof(((struct llog_setattr64_rec *)0)->lsr_uid) == 4, " found %lld\n",
+                 (long long)(int)sizeof(((struct llog_setattr64_rec *)0)->lsr_uid));
+        LASSERTF((int)offsetof(struct llog_setattr64_rec, lsr_uid_h) == 36, " found %lld\n",
+                 (long long)(int)offsetof(struct llog_setattr64_rec, lsr_uid_h));
+        LASSERTF((int)sizeof(((struct llog_setattr64_rec *)0)->lsr_uid_h) == 4, " found %lld\n",
+                 (long long)(int)sizeof(((struct llog_setattr64_rec *)0)->lsr_uid_h));
+        LASSERTF((int)offsetof(struct llog_setattr64_rec, lsr_gid) == 40, " found %lld\n",
+                 (long long)(int)offsetof(struct llog_setattr64_rec, lsr_gid));
+        LASSERTF((int)sizeof(((struct llog_setattr64_rec *)0)->lsr_gid) == 4, " found %lld\n",
+                 (long long)(int)sizeof(((struct llog_setattr64_rec *)0)->lsr_gid));
+        LASSERTF((int)offsetof(struct llog_setattr64_rec, lsr_gid_h) == 44, " found %lld\n",
+                 (long long)(int)offsetof(struct llog_setattr64_rec, lsr_gid_h));
+        LASSERTF((int)sizeof(((struct llog_setattr64_rec *)0)->lsr_gid_h) == 4, " found %lld\n",
+                 (long long)(int)sizeof(((struct llog_setattr64_rec *)0)->lsr_gid_h));
+        LASSERTF((int)offsetof(struct llog_setattr64_rec, lsr_tail) == 48, " found %lld\n",
+                 (long long)(int)offsetof(struct llog_setattr64_rec, lsr_tail));
+        LASSERTF((int)sizeof(((struct llog_setattr64_rec *)0)->lsr_tail) == 8, " found %lld\n",
+                 (long long)(int)sizeof(((struct llog_setattr64_rec *)0)->lsr_tail));
+
         /* Checks for struct llog_size_change_rec */
         LASSERTF((int)sizeof(struct llog_size_change_rec) == 48, " found %lld\n",
                  (long long)(int)sizeof(struct llog_size_change_rec));