X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Futils%2Fwirecheck.c;h=d912f754f9c62a41a1ece60b1b3381307f967e61;hb=bf959135d50c2e7e3d4414a6792f63665c6da22c;hp=d74aa990c28d41c97002543f7b3a1ab74ac08f94;hpb=7efcf4cd0e261389bcd1b5c222325c823845da7c;p=fs%2Flustre-release.git diff --git a/lustre/utils/wirecheck.c b/lustre/utils/wirecheck.c index d74aa99..d912f75 100644 --- a/lustre/utils/wirecheck.c +++ b/lustre/utils/wirecheck.c @@ -163,6 +163,27 @@ do { \ 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) { @@ -270,6 +291,7 @@ check_lu_dirpage(void) CHECK_VALUE(LDF_EMPTY); CHECK_VALUE(LDF_COLLIDE); CHECK_VALUE(LU_PAGE_SIZE); + CHECK_UNION(lu_page); } static void @@ -323,11 +345,30 @@ check_ptlrpc_body(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); @@ -455,6 +496,8 @@ check_obd_connect_data(void) 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); @@ -659,6 +702,14 @@ check_obd_ioobj(void) 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); @@ -693,6 +744,60 @@ check_obd_quotactl(void) 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 @@ -788,6 +893,7 @@ check_mdt_body(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); @@ -1202,7 +1308,7 @@ check_ldlm_reply(void) } static void -check_ldlm_lvb(void) +check_ldlm_ost_lvb(void) { BLANK_LINE(); CHECK_STRUCT(ost_lvb); @@ -1214,6 +1320,34 @@ check_ldlm_lvb(void) } 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(); @@ -1246,16 +1380,16 @@ check_llog_logid(void) 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 @@ -1277,7 +1411,7 @@ check_llog_rec_hdr(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 @@ -1299,37 +1433,10 @@ check_llog_logid_rec(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(); @@ -1342,17 +1449,16 @@ check_llog_unlink_rec(void) } 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 @@ -1363,24 +1469,26 @@ check_llog_setattr64_rec(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 @@ -1541,15 +1649,20 @@ check_ll_fiemap_info_key(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 @@ -1612,27 +1725,6 @@ check_getinfo_fid2path(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(); @@ -1652,18 +1744,6 @@ check_posix_acl_xattr_header(void) } 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(); @@ -1931,16 +2011,6 @@ main(int argc, char **argv) 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); @@ -1999,11 +2069,20 @@ main(int argc, char **argv) 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); @@ -2043,6 +2122,7 @@ main(int argc, char **argv) check_obd_statfs(); check_obd_ioobj(); check_obd_quotactl(); + check_obd_idx_read(); check_niobuf_remote(); check_ost_body(); check_ll_fid(); @@ -2068,7 +2148,9 @@ main(int argc, char **argv) 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(); @@ -2076,13 +2158,11 @@ main(int argc, char **argv) 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(); @@ -2094,13 +2174,11 @@ main(int argc, char **argv) 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");