CHECK_VALUE((int)sizeof(s)); \
} while(0)
+#define CHECK_UNION(s) \
+do { \
+ COMMENT("Checks for union "#s); \
+ CHECK_VALUE((int)sizeof(union s)); \
+} while(0)
+
+#define CHECK_VALUE_SAME(v1, v2) \
+do { \
+ printf("\tLASSERTF("#v1" == "#v2", " \
+ "\"%%d != %%d\\n\",\n" \
+ "\t\t "#v1", "#v2");\n"); \
+} while (0)
+
+#define CHECK_MEMBER_SAME(s1, s2, m) \
+do { \
+ CHECK_VALUE_SAME((int)offsetof(struct s1, m), \
+ (int)offsetof(struct s2, m)); \
+ CHECK_VALUE_SAME((int)sizeof(((struct s1 *)0)->m), \
+ (int)sizeof(((struct s2 *)0)->m)); \
+} while (0)
+
static void
check_lu_seq_range(void)
{
CHECK_VALUE(LDF_EMPTY);
CHECK_VALUE(LDF_COLLIDE);
CHECK_VALUE(LU_PAGE_SIZE);
+ CHECK_UNION(lu_page);
}
static void
CHECK_MEMBER(ptlrpc_body, pb_limit);
CHECK_MEMBER(ptlrpc_body, pb_slv);
CHECK_CVALUE(PTLRPC_NUM_VERSIONS);
- CHECK_MEMBER(ptlrpc_body, pb_pre_versions[PTLRPC_NUM_VERSIONS]);
- CHECK_MEMBER(ptlrpc_body, pb_padding[4]);
+ CHECK_MEMBER(ptlrpc_body, pb_pre_versions);
+ CHECK_MEMBER(ptlrpc_body, pb_padding);
CHECK_CVALUE(JOBSTATS_JOBID_SIZE);
CHECK_MEMBER(ptlrpc_body, pb_jobid);
+ CHECK_MEMBER_SAME(ptlrpc_body_v3, ptlrpc_body_v2, pb_handle);
+ CHECK_MEMBER_SAME(ptlrpc_body_v3, ptlrpc_body_v2, pb_type);
+ CHECK_MEMBER_SAME(ptlrpc_body_v3, ptlrpc_body_v2, pb_version);
+ CHECK_MEMBER_SAME(ptlrpc_body_v3, ptlrpc_body_v2, pb_opc);
+ CHECK_MEMBER_SAME(ptlrpc_body_v3, ptlrpc_body_v2, pb_status);
+ CHECK_MEMBER_SAME(ptlrpc_body_v3, ptlrpc_body_v2, pb_last_xid);
+ CHECK_MEMBER_SAME(ptlrpc_body_v3, ptlrpc_body_v2, pb_last_seen);
+ CHECK_MEMBER_SAME(ptlrpc_body_v3, ptlrpc_body_v2, pb_last_committed);
+ CHECK_MEMBER_SAME(ptlrpc_body_v3, ptlrpc_body_v2, pb_transno);
+ CHECK_MEMBER_SAME(ptlrpc_body_v3, ptlrpc_body_v2, pb_flags);
+ CHECK_MEMBER_SAME(ptlrpc_body_v3, ptlrpc_body_v2, pb_op_flags);
+ CHECK_MEMBER_SAME(ptlrpc_body_v3, ptlrpc_body_v2, pb_conn_cnt);
+ CHECK_MEMBER_SAME(ptlrpc_body_v3, ptlrpc_body_v2, pb_timeout);
+ CHECK_MEMBER_SAME(ptlrpc_body_v3, ptlrpc_body_v2, pb_service_time);
+ CHECK_MEMBER_SAME(ptlrpc_body_v3, ptlrpc_body_v2, pb_limit);
+ CHECK_MEMBER_SAME(ptlrpc_body_v3, ptlrpc_body_v2, pb_slv);
+ CHECK_MEMBER_SAME(ptlrpc_body_v3, ptlrpc_body_v2, pb_pre_versions);
+ CHECK_MEMBER_SAME(ptlrpc_body_v3, ptlrpc_body_v2, pb_padding);
+
CHECK_VALUE(MSG_PTLRPC_BODY_OFF);
CHECK_VALUE(REQ_REC_OFF);
CHECK_VALUE(REPLY_REC_OFF);
CHECK_DEFINE_64X(OBD_CONNECT_UMASK);
CHECK_DEFINE_64X(OBD_CONNECT_EINPROGRESS);
CHECK_DEFINE_64X(OBD_CONNECT_GRANT_PARAM);
+ CHECK_DEFINE_64X(OBD_CONNECT_LIGHTWEIGHT);
+ CHECK_DEFINE_64X(OBD_CONNECT_SHORTIO);
CHECK_VALUE_X(OBD_CKSUM_CRC32);
CHECK_VALUE_X(OBD_CKSUM_ADLER);
static void
check_obd_quotactl(void)
{
+
+ BLANK_LINE();
+ CHECK_UNION(lquota_id);
+
+ BLANK_LINE();
+ CHECK_VALUE(QUOTABLOCK_BITS);
+ CHECK_VALUE(QUOTABLOCK_SIZE);
+
BLANK_LINE();
CHECK_STRUCT(obd_quotactl);
CHECK_MEMBER(obd_quotactl, qc_cmd);
CHECK_DEFINE_X(Q_GETOINFO);
CHECK_DEFINE_X(Q_GETOQUOTA);
CHECK_DEFINE_X(Q_FINVALIDATE);
+
+ BLANK_LINE();
+ CHECK_STRUCT(lquota_acct_rec);
+ CHECK_MEMBER(lquota_acct_rec, bspace);
+ CHECK_MEMBER(lquota_acct_rec, ispace);
+
+ BLANK_LINE();
+ CHECK_STRUCT(lquota_glb_rec);
+ CHECK_MEMBER(lquota_glb_rec, qbr_hardlimit);
+ CHECK_MEMBER(lquota_glb_rec, qbr_softlimit);
+ CHECK_MEMBER(lquota_glb_rec, qbr_time);
+ CHECK_MEMBER(lquota_glb_rec, qbr_granted);
+
+ BLANK_LINE();
+ CHECK_STRUCT(lquota_slv_rec);
+ CHECK_MEMBER(lquota_slv_rec, qsr_granted);
+
+}
+
+static void
+check_obd_idx_read(void)
+{
+ BLANK_LINE();
+ CHECK_STRUCT(idx_info);
+ CHECK_MEMBER(idx_info, ii_magic);
+ CHECK_MEMBER(idx_info, ii_flags);
+ CHECK_MEMBER(idx_info, ii_count);
+ CHECK_MEMBER(idx_info, ii_pad0);
+ CHECK_MEMBER(idx_info, ii_attrs);
+ CHECK_MEMBER(idx_info, ii_fid);
+ CHECK_MEMBER(idx_info, ii_version);
+ CHECK_MEMBER(idx_info, ii_hash_start);
+ CHECK_MEMBER(idx_info, ii_hash_end);
+ CHECK_MEMBER(idx_info, ii_keysize);
+ CHECK_MEMBER(idx_info, ii_recsize);
+ CHECK_MEMBER(idx_info, ii_pad1);
+ CHECK_MEMBER(idx_info, ii_pad2);
+ CHECK_MEMBER(idx_info, ii_pad3);
+ CHECK_CDEFINE(IDX_INFO_MAGIC);
+
+ BLANK_LINE();
+ CHECK_STRUCT(lu_idxpage);
+ CHECK_MEMBER(lu_idxpage, lip_magic);
+ CHECK_MEMBER(lu_idxpage, lip_flags);
+ CHECK_MEMBER(lu_idxpage, lip_nr);
+ CHECK_MEMBER(lu_idxpage, lip_pad0);
+
+ CHECK_CDEFINE(LIP_MAGIC);
+ CHECK_VALUE(LIP_HDR_SIZE);
+
+ CHECK_VALUE(II_FL_NOHASH);
+ CHECK_VALUE(II_FL_VARKEY);
+ CHECK_VALUE(II_FL_VARREC);
+ CHECK_VALUE(II_FL_NONUNQ);
}
static void
CHECK_VALUE_O(MDS_OPEN_APPEND);
CHECK_VALUE_O(MDS_OPEN_SYNC);
CHECK_VALUE_O(MDS_OPEN_DIRECTORY);
+ CHECK_VALUE_O(MDS_OPEN_BY_FID);
CHECK_VALUE_O(MDS_OPEN_DELAY_CREATE);
CHECK_VALUE_O(MDS_OPEN_OWNEROVERRIDE);
CHECK_VALUE_O(MDS_OPEN_JOIN_FILE);
}
static void
-check_ldlm_lvb(void)
+check_ldlm_ost_lvb(void)
{
BLANK_LINE();
CHECK_STRUCT(ost_lvb);
}
static void
+check_ldlm_lquota_lvb(void)
+{
+ BLANK_LINE();
+ CHECK_STRUCT(lquota_lvb);
+ CHECK_MEMBER(lquota_lvb, lvb_flags);
+ CHECK_MEMBER(lquota_lvb, lvb_id_may_rel);
+ CHECK_MEMBER(lquota_lvb, lvb_id_rel);
+ CHECK_MEMBER(lquota_lvb, lvb_id_qunit);
+ CHECK_MEMBER(lquota_lvb, lvb_pad1);
+ CHECK_VALUE(LQUOTA_FL_EDQUOT);
+}
+
+static void
+check_ldlm_gl_lquota_desc(void)
+{
+ BLANK_LINE();
+ CHECK_STRUCT(ldlm_gl_lquota_desc);
+ CHECK_MEMBER(ldlm_gl_lquota_desc, gl_id);
+ CHECK_MEMBER(ldlm_gl_lquota_desc, gl_flags);
+ CHECK_MEMBER(ldlm_gl_lquota_desc, gl_ver);
+ CHECK_MEMBER(ldlm_gl_lquota_desc, gl_hardlimit);
+ CHECK_MEMBER(ldlm_gl_lquota_desc, gl_softlimit);
+ CHECK_MEMBER(ldlm_gl_lquota_desc, gl_pad1);
+ CHECK_MEMBER(ldlm_gl_lquota_desc, gl_pad2);
+}
+
+
+static void
check_mgs_send_param(void)
{
BLANK_LINE();
CHECK_MEMBER(llog_logid, lgl_oseq);
CHECK_MEMBER(llog_logid, lgl_ogen);
- CHECK_CVALUE(OST_SZ_REC);
- CHECK_CVALUE(OST_RAID1_REC);
- CHECK_CVALUE(MDS_UNLINK_REC);
- CHECK_CVALUE(MDS_SETATTR_REC);
- CHECK_CVALUE(OBD_CFG_REC);
- CHECK_CVALUE(PTL_CFG_REC);
- CHECK_CVALUE(LLOG_GEN_REC);
- CHECK_CVALUE(LLOG_JOIN_REC);
- CHECK_CVALUE(LLOG_HDR_MAGIC);
- CHECK_CVALUE(LLOG_LOGID_MAGIC);
+ CHECK_CVALUE(OST_SZ_REC);
+ CHECK_CVALUE(MDS_UNLINK_REC);
+ CHECK_CVALUE(MDS_UNLINK64_REC);
+ CHECK_CVALUE(MDS_SETATTR64_REC);
+ CHECK_CVALUE(OBD_CFG_REC);
+ CHECK_CVALUE(LLOG_GEN_REC);
+ CHECK_CVALUE(CHANGELOG_REC);
+ CHECK_CVALUE(CHANGELOG_USER_REC);
+ CHECK_CVALUE(LLOG_HDR_MAGIC);
+ CHECK_CVALUE(LLOG_LOGID_MAGIC);
}
static void
CHECK_MEMBER(llog_rec_hdr, lrh_len);
CHECK_MEMBER(llog_rec_hdr, lrh_index);
CHECK_MEMBER(llog_rec_hdr, lrh_type);
- CHECK_MEMBER(llog_rec_hdr, lrh_padding);
+ CHECK_MEMBER(llog_rec_hdr, lrh_id);
}
static void
CHECK_MEMBER(llog_logid_rec, lid_padding1);
CHECK_MEMBER(llog_logid_rec, lid_padding2);
CHECK_MEMBER(llog_logid_rec, lid_padding3);
- CHECK_MEMBER(llog_logid_rec, lid_padding4);
- CHECK_MEMBER(llog_logid_rec, lid_padding5);
CHECK_MEMBER(llog_logid_rec, lid_tail);
}
static void
-check_llog_create_rec(void)
-{
- BLANK_LINE();
- CHECK_STRUCT(llog_create_rec);
- CHECK_MEMBER(llog_create_rec, lcr_hdr);
- CHECK_MEMBER(llog_create_rec, lcr_fid);
- CHECK_MEMBER(llog_create_rec, lcr_oid);
- CHECK_MEMBER(llog_create_rec, lcr_oseq);
- CHECK_MEMBER(llog_create_rec, lcr_padding);
- CHECK_MEMBER(llog_create_rec, lcr_tail);
-}
-
-static void
-check_llog_orphan_rec(void)
-{
- BLANK_LINE();
- CHECK_STRUCT(llog_orphan_rec);
- CHECK_MEMBER(llog_orphan_rec, lor_hdr);
- CHECK_MEMBER(llog_orphan_rec, lor_oid);
- CHECK_MEMBER(llog_orphan_rec, lor_ogen);
- CHECK_MEMBER(llog_orphan_rec, lor_padding);
- CHECK_MEMBER(llog_orphan_rec, lor_tail);
-}
-
-static void
check_llog_unlink_rec(void)
{
BLANK_LINE();
}
static void
-check_llog_setattr_rec(void)
+check_llog_unlink64_rec(void)
{
- BLANK_LINE();
- CHECK_STRUCT(llog_setattr_rec);
- CHECK_MEMBER(llog_setattr_rec, lsr_hdr);
- CHECK_MEMBER(llog_setattr_rec, lsr_oid);
- CHECK_MEMBER(llog_setattr_rec, lsr_oseq);
- CHECK_MEMBER(llog_setattr_rec, lsr_uid);
- CHECK_MEMBER(llog_setattr_rec, lsr_gid);
- CHECK_MEMBER(llog_setattr_rec, lsr_padding);
- CHECK_MEMBER(llog_setattr_rec, lsr_tail);
+ CHECK_STRUCT(llog_unlink64_rec);
+ CHECK_MEMBER(llog_unlink64_rec, lur_hdr);
+ CHECK_MEMBER(llog_unlink64_rec, lur_fid);
+ CHECK_MEMBER(llog_unlink64_rec, lur_count);
+ CHECK_MEMBER(llog_unlink64_rec, lur_tail);
+ CHECK_MEMBER(llog_unlink64_rec, lur_padding1);
+ CHECK_MEMBER(llog_unlink64_rec, lur_padding2);
+ CHECK_MEMBER(llog_unlink64_rec, lur_padding3);
}
static void
CHECK_MEMBER(llog_setattr64_rec, lsr_hdr);
CHECK_MEMBER(llog_setattr64_rec, lsr_oid);
CHECK_MEMBER(llog_setattr64_rec, lsr_oseq);
- CHECK_MEMBER(llog_setattr64_rec, lsr_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);
+ CHECK_MEMBER(llog_setattr64_rec, lsr_padding);
+ CHECK_MEMBER(llog_setattr64_rec, lsr_tail);
}
static void
check_llog_size_change_rec(void)
{
- BLANK_LINE();
- CHECK_STRUCT(llog_size_change_rec);
- CHECK_MEMBER(llog_size_change_rec, lsc_hdr);
- CHECK_MEMBER(llog_size_change_rec, lsc_fid);
- CHECK_MEMBER(llog_size_change_rec, lsc_ioepoch);
- CHECK_MEMBER(llog_size_change_rec, lsc_padding);
- CHECK_MEMBER(llog_size_change_rec, lsc_tail);
+ BLANK_LINE();
+ CHECK_STRUCT(llog_size_change_rec);
+ CHECK_MEMBER(llog_size_change_rec, lsc_hdr);
+ CHECK_MEMBER(llog_size_change_rec, lsc_fid);
+ CHECK_MEMBER(llog_size_change_rec, lsc_ioepoch);
+ CHECK_MEMBER(llog_size_change_rec, lsc_padding1);
+ CHECK_MEMBER(llog_size_change_rec, lsc_padding2);
+ CHECK_MEMBER(llog_size_change_rec, lsc_padding3);
+ CHECK_MEMBER(llog_size_change_rec, lsc_tail);
}
static void
}
static void
-check_qunit_data(void)
+check_quota_body(void)
{
- BLANK_LINE();
- CHECK_STRUCT(qunit_data);
- CHECK_MEMBER(qunit_data, qd_id);
- CHECK_MEMBER(qunit_data, qd_flags);
- CHECK_MEMBER(qunit_data, qd_count);
- CHECK_MEMBER(qunit_data, qd_qunit);
- CHECK_MEMBER(qunit_data, padding);
+ BLANK_LINE();
+ CHECK_STRUCT(quota_body);
+ CHECK_MEMBER(quota_body, qb_fid);
+ CHECK_MEMBER(quota_body, qb_id);
+ CHECK_MEMBER(quota_body, qb_flags);
+ CHECK_MEMBER(quota_body, qb_padding);
+ CHECK_MEMBER(quota_body, qb_count);
+ CHECK_MEMBER(quota_body, qb_usage);
+ CHECK_MEMBER(quota_body, qb_slv_ver);
+ CHECK_MEMBER(quota_body, qb_lockh);
+ CHECK_MEMBER(quota_body, qb_glb_lockh);
+ CHECK_MEMBER(quota_body, qb_padding1[4]);
}
static void
}
static void
-check_lustre_disk_data(void)
-{
- BLANK_LINE();
- CHECK_STRUCT(lustre_disk_data);
- CHECK_MEMBER(lustre_disk_data, ldd_magic);
- CHECK_MEMBER(lustre_disk_data, ldd_feature_compat);
- CHECK_MEMBER(lustre_disk_data, ldd_feature_rocompat);
- CHECK_MEMBER(lustre_disk_data, ldd_feature_incompat);
- CHECK_MEMBER(lustre_disk_data, ldd_config_ver);
- CHECK_MEMBER(lustre_disk_data, ldd_flags);
- CHECK_MEMBER(lustre_disk_data, ldd_svindex);
- CHECK_MEMBER(lustre_disk_data, ldd_mount_type);
- CHECK_MEMBER(lustre_disk_data, ldd_fsname);
- CHECK_MEMBER(lustre_disk_data, ldd_svname);
- CHECK_MEMBER(lustre_disk_data, ldd_uuid);
- CHECK_MEMBER(lustre_disk_data, ldd_userdata);
- CHECK_MEMBER(lustre_disk_data, ldd_mount_opts);
- CHECK_MEMBER(lustre_disk_data, ldd_params);
-}
-
-static void
check_posix_acl_xattr_entry(void)
{
BLANK_LINE();
}
static void
-check_quota_adjust_qunit(void)
-{
- BLANK_LINE();
- CHECK_STRUCT(quota_adjust_qunit);
- CHECK_MEMBER(quota_adjust_qunit, qaq_flags);
- CHECK_MEMBER(quota_adjust_qunit, qaq_id);
- CHECK_MEMBER(quota_adjust_qunit, qaq_bunit_sz);
- CHECK_MEMBER(quota_adjust_qunit, qaq_iunit_sz);
- CHECK_MEMBER(quota_adjust_qunit, padding1);
-}
-
-static void
check_ll_user_fiemap(void)
{
BLANK_LINE();
CHECK_VALUE_X(MF_SOM_AU);
CHECK_VALUE_X(MF_GETATTR_LOCK);
- CHECK_VALUE(LQUOTA_FLAGS_GRP);
- CHECK_VALUE(LQUOTA_FLAGS_BLK);
- CHECK_VALUE(LQUOTA_FLAGS_ADJBLK);
- CHECK_VALUE(LQUOTA_FLAGS_ADJINO);
- CHECK_VALUE(LQUOTA_FLAGS_CHG_QS);
- CHECK_VALUE(LQUOTA_FLAGS_RECOVERY);
- CHECK_VALUE(LQUOTA_FLAGS_SETQUOTA);
-
- CHECK_VALUE_X(LQUOTA_QAQ_CREATE_LQS);
-
CHECK_VALUE_64X(MDS_ATTR_MODE);
CHECK_VALUE_64X(MDS_ATTR_UID);
CHECK_VALUE_64X(MDS_ATTR_GID);
CHECK_CVALUE(LUSTRE_RES_ID_SEQ_OFF);
CHECK_CVALUE(LUSTRE_RES_ID_VER_OID_OFF);
/* CHECK_CVALUE(LUSTRE_RES_ID_WAS_VER_OFF); packed with OID */
+ CHECK_CVALUE(LUSTRE_RES_ID_QUOTA_SEQ_OFF);
+ CHECK_CVALUE(LUSTRE_RES_ID_QUOTA_VER_OID_OFF);
CHECK_CVALUE(LUSTRE_RES_ID_HSH_OFF);
+ CHECK_CVALUE(LQUOTA_TYPE_USR);
+ CHECK_CVALUE(LQUOTA_TYPE_GRP);
+
+ CHECK_CVALUE(LQUOTA_RES_MD);
+ CHECK_CVALUE(LQUOTA_RES_DT);
+
CHECK_VALUE(OBD_PING);
CHECK_VALUE(OBD_LOG_CANCEL);
CHECK_VALUE(OBD_QC_CALLBACK);
+ CHECK_VALUE(OBD_IDX_READ);
CHECK_VALUE(OBD_LAST_OPC);
CHECK_VALUE(QUOTA_DQACQ);
check_obd_statfs();
check_obd_ioobj();
check_obd_quotactl();
+ check_obd_idx_read();
check_niobuf_remote();
check_ost_body();
check_ll_fid();
check_ldlm_lock_desc();
check_ldlm_request();
check_ldlm_reply();
- check_ldlm_lvb();
+ check_ldlm_ost_lvb();
+ check_ldlm_lquota_lvb();
+ check_ldlm_gl_lquota_desc();
check_mgs_send_param();
check_cfg_marker();
check_llog_logid();
check_llog_rec_hdr();
check_llog_rec_tail();
check_llog_logid_rec();
- check_llog_create_rec();
- check_llog_orphan_rec();
check_llog_unlink_rec();
- check_llog_setattr_rec();
- check_llog_setattr64_rec();
- check_llog_size_change_rec();
- check_changelog_rec();
+ check_llog_unlink64_rec();
+ check_llog_setattr64_rec();
+ check_llog_size_change_rec();
+ check_changelog_rec();
check_changelog_rec_ext();
check_changelog_setinfo();
check_llog_changelog_rec();
check_llogd_body();
check_llogd_conn_body();
check_ll_fiemap_info_key();
- check_qunit_data();
- check_quota_adjust_qunit();
+ check_quota_body();
check_mgs_target_info();
check_lustre_capa();
check_lustre_capa_key();
check_getinfo_fid2path();
- check_lustre_disk_data();
check_ll_user_fiemap();
check_ll_fiemap_extent();
printf("#ifdef LIBLUSTRE_POSIX_ACL\n");