X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Futils%2Fwirecheck.c;h=7991e08d7d4619e2048b68145604227e983520a3;hb=807a40c5678109087e2c8759bd86253034804c8d;hp=1d82f5ac0c12b927a6f2274a55953964c0948a1c;hpb=d6f104f056a5ec6e82e19f12f6faefa0d3ca10a9;p=fs%2Flustre-release.git diff --git a/lustre/utils/wirecheck.c b/lustre/utils/wirecheck.c index 1d82f5a..7991e08 100644 --- a/lustre/utils/wirecheck.c +++ b/lustre/utils/wirecheck.c @@ -367,7 +367,7 @@ check_ptlrpc_body(void) CHECK_CVALUE(PTLRPC_NUM_VERSIONS); CHECK_MEMBER(ptlrpc_body, pb_pre_versions); CHECK_MEMBER(ptlrpc_body, pb_padding); - CHECK_CVALUE(JOBSTATS_JOBID_SIZE); + CHECK_CVALUE(LUSTRE_JOBID_SIZE); CHECK_MEMBER(ptlrpc_body, pb_jobid); CHECK_MEMBER_SAME(ptlrpc_body_v3, ptlrpc_body_v2, pb_handle); @@ -455,6 +455,8 @@ check_obd_connect_data(void) CHECK_MEMBER(obd_connect_data, ocd_max_easize); CHECK_MEMBER(obd_connect_data, ocd_instance); CHECK_MEMBER(obd_connect_data, ocd_maxbytes); + CHECK_MEMBER(obd_connect_data, ocd_maxmodrpcs); + CHECK_MEMBER(obd_connect_data, padding0); CHECK_MEMBER(obd_connect_data, padding1); CHECK_MEMBER(obd_connect_data, padding2); CHECK_MEMBER(obd_connect_data, padding3); @@ -526,6 +528,7 @@ check_obd_connect_data(void) CHECK_DEFINE_64X(OBD_CONNECT_OPEN_BY_FID); CHECK_DEFINE_64X(OBD_CONNECT_LFSCK); CHECK_DEFINE_64X(OBD_CONNECT_UNLINK_CLOSE); + CHECK_DEFINE_64X(OBD_CONNECT_MULTIMODRPCS); CHECK_DEFINE_64X(OBD_CONNECT_DIR_STRIPE); CHECK_VALUE_X(OBD_CKSUM_CRC32); @@ -679,7 +682,7 @@ check_lov_mds_md_v3(void) CHECK_MEMBER(lov_mds_md_v3, lmm_stripe_count); CHECK_MEMBER(lov_mds_md_v3, lmm_layout_gen); CHECK_CVALUE(LOV_MAXPOOLNAME); - CHECK_MEMBER(lov_mds_md_v3, lmm_pool_name[LOV_MAXPOOLNAME]); + CHECK_MEMBER(lov_mds_md_v3, lmm_pool_name[LOV_MAXPOOLNAME + 1]); CHECK_MEMBER(lov_mds_md_v3, lmm_objects[0]); CHECK_CDEFINE(LOV_MAGIC_V3); @@ -711,6 +714,8 @@ check_lmv_mds_md_v1(void) CHECK_CDEFINE(LMV_HASH_TYPE_MASK); CHECK_CDEFINE(LMV_HASH_FLAG_MIGRATION); CHECK_CDEFINE(LMV_HASH_FLAG_DEAD); + CHECK_CDEFINE(LMV_HASH_FLAG_BAD_TYPE); + CHECK_CDEFINE(LMV_HASH_FLAG_LOST_LMV); } static void @@ -1558,20 +1563,20 @@ check_changelog_rec(void) } static void -check_changelog_rec_ext(void) +check_changelog_ext_rename(void) { BLANK_LINE(); - CHECK_STRUCT(changelog_ext_rec); - CHECK_MEMBER(changelog_ext_rec, cr_namelen); - CHECK_MEMBER(changelog_ext_rec, cr_flags); - CHECK_MEMBER(changelog_ext_rec, cr_type); - CHECK_MEMBER(changelog_ext_rec, cr_index); - CHECK_MEMBER(changelog_ext_rec, cr_prev); - CHECK_MEMBER(changelog_ext_rec, cr_time); - CHECK_MEMBER(changelog_ext_rec, cr_tfid); - CHECK_MEMBER(changelog_ext_rec, cr_pfid); - CHECK_MEMBER(changelog_ext_rec, cr_sfid); - CHECK_MEMBER(changelog_ext_rec, cr_spfid); + CHECK_STRUCT(changelog_ext_rename); + CHECK_MEMBER(changelog_ext_rename, cr_sfid); + CHECK_MEMBER(changelog_ext_rename, cr_spfid); +} + +static void +check_changelog_ext_jobid(void) +{ + BLANK_LINE(); + CHECK_STRUCT(changelog_ext_jobid); + CHECK_MEMBER(changelog_ext_jobid, cr_jobid); } static void @@ -1590,7 +1595,7 @@ check_llog_changelog_rec(void) CHECK_STRUCT(llog_changelog_rec); CHECK_MEMBER(llog_changelog_rec, cr_hdr); CHECK_MEMBER(llog_changelog_rec, cr); - CHECK_MEMBER(llog_changelog_rec, cr_tail); + CHECK_MEMBER(llog_changelog_rec, cr_do_not_use); } static void @@ -1789,6 +1794,45 @@ check_getinfo_fid2path(void) CHECK_MEMBER(getinfo_fid2path, gf_path[0]); } +/* We don't control the definitions of posix_acl_xattr_{entry,header} + * and so we shouldn't have used them in our wire protocol. But it's + * too late now and so we emit checks against the *fixed* definitions + * below. See LU-5607. */ + +typedef struct { + __u16 e_tag; + __u16 e_perm; + __u32 e_id; +} posix_acl_xattr_entry; + +typedef struct { + __u32 a_version; + posix_acl_xattr_entry a_entries[0]; +} posix_acl_xattr_header; + +static void +check_posix_acl_xattr_entry(void) +{ + BLANK_LINE(); + printf("#ifdef CONFIG_FS_POSIX_ACL\n"); + CHECK_STRUCT_TYPEDEF(posix_acl_xattr_entry); + CHECK_MEMBER_TYPEDEF(posix_acl_xattr_entry, e_tag); + CHECK_MEMBER_TYPEDEF(posix_acl_xattr_entry, e_perm); + CHECK_MEMBER_TYPEDEF(posix_acl_xattr_entry, e_id); + printf("#endif /* CONFIG_FS_POSIX_ACL */\n"); +} + +static void +check_posix_acl_xattr_header(void) +{ + BLANK_LINE(); + printf("#ifdef CONFIG_FS_POSIX_ACL\n"); + CHECK_STRUCT_TYPEDEF(posix_acl_xattr_header); + CHECK_MEMBER_TYPEDEF(posix_acl_xattr_header, a_version); + CHECK_MEMBER_TYPEDEF(posix_acl_xattr_header, a_entries); + printf("#endif /* CONFIG_FS_POSIX_ACL */\n"); +} + static void check_ll_user_fiemap(void) { @@ -2087,16 +2131,15 @@ static void check_lfsck_request(void) CHECK_MEMBER(lfsck_request, lr_active); CHECK_MEMBER(lfsck_request, lr_param); CHECK_MEMBER(lfsck_request, lr_async_windows); - CHECK_MEMBER(lfsck_request, lr_padding_1); + CHECK_MEMBER(lfsck_request, lr_flags); CHECK_MEMBER(lfsck_request, lr_fid); CHECK_MEMBER(lfsck_request, lr_fid2); CHECK_MEMBER(lfsck_request, lr_fid3); + CHECK_MEMBER(lfsck_request, lr_padding_1); CHECK_MEMBER(lfsck_request, lr_padding_2); - CHECK_MEMBER(lfsck_request, lr_padding_3); CHECK_VALUE_X(LFSCK_TYPE_SCRUB); CHECK_VALUE_X(LFSCK_TYPE_LAYOUT); - CHECK_VALUE_X(LFSCK_TYPE_DNE); CHECK_VALUE_X(LFSCK_TYPE_NAMESPACE); CHECK_VALUE(LE_LASTID_REBUILDING); @@ -2110,9 +2153,16 @@ static void check_lfsck_request(void) CHECK_VALUE(LE_PEER_EXIT); CHECK_VALUE(LE_CONDITIONAL_DESTROY); CHECK_VALUE(LE_PAIRS_VERIFY); + CHECK_VALUE(LE_SKIP_NLINK_DECLARE); + CHECK_VALUE(LE_SKIP_NLINK); + CHECK_VALUE(LE_SET_LMV_MASTER); + CHECK_VALUE(LE_SET_LMV_SLAVE); CHECK_VALUE_X(LEF_TO_OST); CHECK_VALUE_X(LEF_FROM_OST); + CHECK_VALUE_X(LEF_SET_LMV_HASH); + CHECK_VALUE_X(LEF_SET_LMV_ALL); + CHECK_VALUE_X(LEF_RECHECK_NAME_HASH); } static void check_lfsck_reply(void) @@ -2480,7 +2530,8 @@ main(int argc, char **argv) check_llog_setattr64_rec(); check_llog_size_change_rec(); check_changelog_rec(); - check_changelog_rec_ext(); + check_changelog_ext_rename(); + check_changelog_ext_jobid(); check_changelog_setinfo(); check_llog_changelog_rec(); check_llog_changelog_user_rec(); @@ -2498,6 +2549,8 @@ main(int argc, char **argv) check_getinfo_fid2path(); check_ll_user_fiemap(); check_ll_fiemap_extent(); + check_posix_acl_xattr_entry(); + check_posix_acl_xattr_header(); check_link_ea_header(); check_link_ea_entry(); check_layout_intent();