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);
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);
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);
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);
}
static void
+check_lmv_mds_md_v1(void)
+{
+ BLANK_LINE();
+ CHECK_STRUCT(lmv_mds_md_v1);
+ CHECK_MEMBER(lmv_mds_md_v1, lmv_magic);
+ CHECK_MEMBER(lmv_mds_md_v1, lmv_stripe_count);
+ CHECK_MEMBER(lmv_mds_md_v1, lmv_master_mdt_index);
+ CHECK_MEMBER(lmv_mds_md_v1, lmv_hash_type);
+ CHECK_MEMBER(lmv_mds_md_v1, lmv_layout_version);
+ CHECK_MEMBER(lmv_mds_md_v1, lmv_padding1);
+ CHECK_MEMBER(lmv_mds_md_v1, lmv_padding2);
+ CHECK_MEMBER(lmv_mds_md_v1, lmv_padding3);
+ CHECK_MEMBER(lmv_mds_md_v1, lmv_pool_name[LOV_MAXPOOLNAME]);
+ CHECK_MEMBER(lmv_mds_md_v1, lmv_stripe_fids[0]);
+
+ CHECK_CDEFINE(LMV_MAGIC_V1);
+ CHECK_CDEFINE(LMV_MAGIC_STRIPE);
+ 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
check_obd_statfs(void)
{
BLANK_LINE();
{
BLANK_LINE();
CHECK_STRUCT(niobuf_remote);
- CHECK_MEMBER(niobuf_remote, offset);
- CHECK_MEMBER(niobuf_remote, len);
- CHECK_MEMBER(niobuf_remote, flags);
+ CHECK_MEMBER(niobuf_remote, rnb_offset);
+ CHECK_MEMBER(niobuf_remote, rnb_len);
+ CHECK_MEMBER(niobuf_remote, rnb_flags);
CHECK_DEFINE_X(OBD_BRW_READ);
CHECK_DEFINE_X(OBD_BRW_WRITE);
}
static void
-check_changelog_rec_ext(void)
+check_changelog_ext_rename(void)
+{
+ BLANK_LINE();
+ 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_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_jobid);
+ CHECK_MEMBER(changelog_ext_jobid, cr_jobid);
}
static 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
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)
{
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);
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)
check_lov_ost_data_v1();
check_lov_mds_md_v1();
check_lov_mds_md_v3();
+ check_lmv_mds_md_v1();
check_obd_statfs();
check_obd_ioobj();
check_obd_quotactl();
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();
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();