*
* You should have received a copy of the GNU General Public License
* version 2 along with this program; If not, see
- * http://www.sun.com/software/products/lustre/docs/GPLv2.pdf
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
+ * http://www.gnu.org/licenses/gpl-2.0.html
*
* GPL HEADER END
*/
* Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Use is subject to license terms.
*
- * Copyright (c) 2011, 2015, Intel Corporation.
+ * Copyright (c) 2011, 2017, Intel Corporation.
*/
/*
* This file is part of Lustre, http://www.lustre.org/
#include <stdlib.h>
#include <sys/types.h>
#include <sys/wait.h>
-#include <lustre/lustre_idl.h>
-#include <lustre/lustre_lfsck_user.h>
-#include <lustre_disk.h>
+#include <linux/lustre/lustre_idl.h>
+#include <linux/lustre/lustre_lfsck_user.h>
+#include <linux/lustre/lustre_disk.h>
#define BLANK_LINE() \
do { \
CHECK_MEMBER(lustre_mdt_attrs, lma_compat);
CHECK_MEMBER(lustre_mdt_attrs, lma_incompat);
CHECK_MEMBER(lustre_mdt_attrs, lma_self_fid);
+
+ CHECK_VALUE_X(LMAC_HSM);
+ CHECK_VALUE_X(LMAC_NOT_IN_OI);
+ CHECK_VALUE_X(LMAC_FID_ON_OST);
+ CHECK_VALUE_X(LMAC_STRIPE_INFO);
+ CHECK_VALUE_X(LMAC_COMP_INFO);
+
CHECK_VALUE_X(LMAI_RELEASED);
CHECK_VALUE_X(LMAI_AGENT);
CHECK_VALUE_X(LMAI_REMOTE_PARENT);
CHECK_VALUE_X(LMAI_STRIPED);
CHECK_VALUE_X(LMAI_ORPHAN);
+}
- CHECK_VALUE_X(LMAC_HSM);
- CHECK_VALUE_X(LMAC_NOT_IN_OI);
- CHECK_VALUE_X(LMAC_FID_ON_OST);
+static void
+check_lustre_ost_attrs(void)
+{
+ BLANK_LINE();
+ CHECK_STRUCT(lustre_ost_attrs);
+ CHECK_MEMBER(lustre_ost_attrs, loa_lma);
+ CHECK_MEMBER(lustre_ost_attrs, loa_parent_fid);
+ CHECK_MEMBER(lustre_ost_attrs, loa_stripe_size);
+ CHECK_MEMBER(lustre_ost_attrs, loa_comp_id);
+ CHECK_MEMBER(lustre_ost_attrs, loa_comp_start);
+ CHECK_MEMBER(lustre_ost_attrs, loa_comp_end);
+}
+
+
+static void
+check_som_attrs(void)
+{
+ BLANK_LINE();
+ CHECK_STRUCT(lustre_som_attrs);
+ CHECK_MEMBER(lustre_som_attrs, lsa_valid);
+ CHECK_MEMBER(lustre_som_attrs, lsa_reserved;
+ CHECK_MEMBER(lustre_som_attrs, lsa_size);
+ CHECK_MEMBER(lustre_som_attrs, lsa_blocks);
}
static void
CHECK_MEMBER(lu_ladvise, lla_value3);
CHECK_MEMBER(lu_ladvise, lla_value4);
CHECK_VALUE(LU_LADVISE_WILLREAD);
+ CHECK_VALUE(LU_LADVISE_DONTNEED);
+}
+
+static void
+check_ladvise_hdr(void)
+{
+ BLANK_LINE();
+ CHECK_STRUCT(ladvise_hdr);
+ CHECK_MEMBER(ladvise_hdr, lah_magic);
+ CHECK_MEMBER(ladvise_hdr, lah_count);
+ CHECK_MEMBER(ladvise_hdr, lah_flags);
+ CHECK_MEMBER(ladvise_hdr, lah_value1);
+ CHECK_MEMBER(ladvise_hdr, lah_value2);
+ CHECK_MEMBER(ladvise_hdr, lah_value3);
+ CHECK_MEMBER(ladvise_hdr, lah_advise);
CHECK_VALUE(LF_ASYNC);
CHECK_VALUE(LADVISE_MAGIC);
CHECK_MEMBER(lustre_msg_v2, lm_padding_3);
CHECK_MEMBER(lustre_msg_v2, lm_buflens[0]);
- CHECK_DEFINE_X(LUSTRE_MSG_MAGIC_V2);
- CHECK_DEFINE_X(LUSTRE_MSG_MAGIC_V2_SWABBED);
+ CHECK_VALUE_X(LUSTRE_MSG_MAGIC_V2);
+ CHECK_VALUE_X(LUSTRE_MSG_MAGIC_V2_SWABBED);
}
static void
CHECK_VALUE(DLM_REPLY_REC_OFF);
CHECK_VALUE(MSG_PTLRPC_HEADER_OFF);
- CHECK_DEFINE_X(PTLRPC_MSG_VERSION);
- CHECK_DEFINE_X(LUSTRE_VERSION_MASK);
- CHECK_DEFINE_X(LUSTRE_OBD_VERSION);
- CHECK_DEFINE_X(LUSTRE_MDS_VERSION);
- CHECK_DEFINE_X(LUSTRE_OST_VERSION);
- CHECK_DEFINE_X(LUSTRE_DLM_VERSION);
- CHECK_DEFINE_X(LUSTRE_LOG_VERSION);
- CHECK_DEFINE_X(LUSTRE_MGS_VERSION);
+ CHECK_VALUE_X(PTLRPC_MSG_VERSION);
+ CHECK_VALUE_X(LUSTRE_VERSION_MASK);
+ CHECK_VALUE_X(LUSTRE_OBD_VERSION);
+ CHECK_VALUE_X(LUSTRE_MDS_VERSION);
+ CHECK_VALUE_X(LUSTRE_OST_VERSION);
+ CHECK_VALUE_X(LUSTRE_DLM_VERSION);
+ CHECK_VALUE_X(LUSTRE_LOG_VERSION);
+ CHECK_VALUE_X(LUSTRE_MGS_VERSION);
CHECK_VALUE(MSGHDR_AT_SUPPORT);
CHECK_VALUE(MSGHDR_CKSUM_INCOMPAT18);
- CHECK_VALUE_X(MSG_OP_FLAG_MASK);
- CHECK_VALUE(MSG_OP_FLAG_SHIFT);
- CHECK_VALUE_X(MSG_GEN_FLAG_MASK);
-
- CHECK_VALUE_X(MSG_LAST_REPLAY);
CHECK_VALUE_X(MSG_RESENT);
CHECK_VALUE_X(MSG_REPLAY);
- CHECK_VALUE_X(MSG_DELAY_REPLAY);
- CHECK_VALUE_X(MSG_VERSION_REPLAY);
CHECK_VALUE_X(MSG_REQ_REPLAY_DONE);
CHECK_VALUE_X(MSG_LOCK_REPLAY_DONE);
CHECK_VALUE_X(MSG_CONNECT_REPLAYABLE);
CHECK_VALUE_X(MSG_CONNECT_LIBCLIENT);
CHECK_VALUE_X(MSG_CONNECT_INITIAL);
- CHECK_VALUE_X(MSG_CONNECT_ASYNC);
CHECK_VALUE_X(MSG_CONNECT_NEXT_VER);
CHECK_VALUE_X(MSG_CONNECT_TRANSNO);
}
CHECK_DEFINE_64X(OBD_CONNECT_REQPORTAL);
CHECK_DEFINE_64X(OBD_CONNECT_ACL);
CHECK_DEFINE_64X(OBD_CONNECT_XATTR);
- CHECK_DEFINE_64X(OBD_CONNECT_CROW);
+ CHECK_DEFINE_64X(OBD_CONNECT_LARGE_ACL);
CHECK_DEFINE_64X(OBD_CONNECT_TRUNCLOCK);
CHECK_DEFINE_64X(OBD_CONNECT_TRANSNO);
CHECK_DEFINE_64X(OBD_CONNECT_IBITS);
- CHECK_DEFINE_64X(OBD_CONNECT_JOIN);
+ CHECK_DEFINE_64X(OBD_CONNECT_BARRIER);
CHECK_DEFINE_64X(OBD_CONNECT_ATTRFID);
CHECK_DEFINE_64X(OBD_CONNECT_NODEVOH);
CHECK_DEFINE_64X(OBD_CONNECT_RMT_CLIENT);
CHECK_DEFINE_64X(OBD_CONNECT_MULTIMODRPCS);
CHECK_DEFINE_64X(OBD_CONNECT_DIR_STRIPE);
CHECK_DEFINE_64X(OBD_CONNECT_SUBTREE);
- CHECK_DEFINE_64X(OBD_CONNECT_LOCK_AHEAD);
+ CHECK_DEFINE_64X(OBD_CONNECT_LOCKAHEAD_OLD);
CHECK_DEFINE_64X(OBD_CONNECT_BULK_MBITS);
CHECK_DEFINE_64X(OBD_CONNECT_OBDOPACK);
CHECK_DEFINE_64X(OBD_CONNECT_FLAGS2);
CHECK_DEFINE_64X(OBD_CONNECT2_FILE_SECCTX);
+ CHECK_DEFINE_64X(OBD_CONNECT2_LOCKAHEAD);
+ CHECK_DEFINE_64X(OBD_CONNECT2_DIR_MIGRATE);
+ CHECK_DEFINE_64X(OBD_CONNECT2_FLR);
+ CHECK_DEFINE_64X(OBD_CONNECT2_WBC_INTENTS);
+ CHECK_DEFINE_64X(OBD_CONNECT2_LOCK_CONVERT);
+ CHECK_DEFINE_64X(OBD_CONNECT2_ARCHIVE_ID_ARRAY);
CHECK_VALUE_X(OBD_CKSUM_CRC32);
CHECK_VALUE_X(OBD_CKSUM_ADLER);
CHECK_VALUE_X(OBD_CKSUM_CRC32C);
+ CHECK_VALUE_X(OBD_CKSUM_RESERVED);
+ CHECK_VALUE_X(OBD_CKSUM_T10IP512);
+ CHECK_VALUE_X(OBD_CKSUM_T10IP4K);
+ CHECK_VALUE_X(OBD_CKSUM_T10CRC512);
+ CHECK_VALUE_X(OBD_CKSUM_T10CRC4K);
+ CHECK_VALUE_X(OBD_CKSUM_T10_TOP);
+}
+
+static void
+check_ost_layout(void)
+{
+ BLANK_LINE();
+ CHECK_STRUCT(ost_layout);
+ CHECK_MEMBER(ost_layout, ol_stripe_size);
+ CHECK_MEMBER(ost_layout, ol_stripe_count);
+ CHECK_MEMBER(ost_layout, ol_comp_start);
+ CHECK_MEMBER(ost_layout, ol_comp_end);
+ CHECK_MEMBER(ost_layout, ol_comp_id);
}
static void
CHECK_MEMBER(obdo, o_stripe_idx);
CHECK_MEMBER(obdo, o_parent_ver);
CHECK_MEMBER(obdo, o_handle);
- CHECK_MEMBER(obdo, o_lcookie);
+ CHECK_MEMBER(obdo, o_layout);
+ CHECK_MEMBER(obdo, o_layout_version);
CHECK_MEMBER(obdo, o_uid_h);
CHECK_MEMBER(obdo, o_gid_h);
CHECK_MEMBER(obdo, o_data_version);
+ CHECK_MEMBER(obdo, o_projid);
CHECK_MEMBER(obdo, o_padding_4);
CHECK_MEMBER(obdo, o_padding_5);
CHECK_MEMBER(obdo, o_padding_6);
CHECK_DEFINE_64X(OBD_MD_FLACL);
CHECK_DEFINE_64X(OBD_MD_FLMDSCAPA);
CHECK_DEFINE_64X(OBD_MD_FLOSSCAPA);
- CHECK_DEFINE_64X(OBD_MD_FLCKSPLIT);
CHECK_DEFINE_64X(OBD_MD_FLCROSSREF);
CHECK_DEFINE_64X(OBD_MD_FLGETATTRLOCK);
CHECK_DEFINE_64X(OBD_MD_FLDATAVERSION);
+ CHECK_DEFINE_64X(OBD_MD_CLOSE_INTENT_EXECED);
+ CHECK_DEFINE_64X(OBD_MD_DEFAULT_MEA);
+ CHECK_DEFINE_64X(OBD_MD_FLOSTLAYOUT);
+ CHECK_DEFINE_64X(OBD_MD_FLPROJID);
CHECK_CVALUE_X(OBD_FL_INLINEDATA);
CHECK_CVALUE_X(OBD_FL_OBDMDEXISTS);
CHECK_CVALUE_X(OBD_FL_CKSUM_CRC32);
CHECK_CVALUE_X(OBD_FL_CKSUM_ADLER);
CHECK_CVALUE_X(OBD_FL_CKSUM_CRC32C);
- CHECK_CVALUE_X(OBD_FL_CKSUM_RSVD2);
+ CHECK_CVALUE_X(OBD_FL_CKSUM_T10IP512);
+ CHECK_CVALUE_X(OBD_FL_CKSUM_T10IP4K);
+ CHECK_CVALUE_X(OBD_FL_CKSUM_T10CRC512);
+ CHECK_CVALUE_X(OBD_FL_CKSUM_T10CRC4K);
CHECK_CVALUE_X(OBD_FL_CKSUM_RSVD3);
CHECK_CVALUE_X(OBD_FL_SHRINK_GRANT);
CHECK_CVALUE_X(OBD_FL_MMAP);
CHECK_CVALUE_X(OBD_FL_NOSPC_BLK);
CHECK_CVALUE_X(OBD_FL_FLUSH);
CHECK_CVALUE_X(OBD_FL_SHORT_IO);
- CHECK_CVALUE_X(OBD_FL_LOCAL_MASK);
}
static void
CHECK_VALUE_X(LOV_PATTERN_RAID0);
CHECK_VALUE_X(LOV_PATTERN_RAID1);
- CHECK_VALUE_X(LOV_PATTERN_FIRST);
+ CHECK_VALUE_X(LOV_PATTERN_MDT);
CHECK_VALUE_X(LOV_PATTERN_CMOBD);
}
static void
+check_lov_comp_md_entry_v1(void)
+{
+ BLANK_LINE();
+ CHECK_STRUCT(lov_comp_md_entry_v1);
+ CHECK_MEMBER(lov_comp_md_entry_v1, lcme_id);
+ CHECK_MEMBER(lov_comp_md_entry_v1, lcme_flags);
+ CHECK_MEMBER(lov_comp_md_entry_v1, lcme_extent);
+ CHECK_MEMBER(lov_comp_md_entry_v1, lcme_offset);
+ CHECK_MEMBER(lov_comp_md_entry_v1, lcme_size);
+ CHECK_MEMBER(lov_comp_md_entry_v1, lcme_layout_gen);
+ CHECK_MEMBER(lov_comp_md_entry_v1, lcme_padding_1);
+ CHECK_MEMBER(lov_comp_md_entry_v1, lcme_padding_2);
+
+ CHECK_VALUE_X(LCME_FL_INIT);
+ CHECK_VALUE_X(LCME_FL_NEG);
+}
+
+static void
+check_lov_comp_md_v1(void)
+{
+ BLANK_LINE();
+ CHECK_STRUCT(lov_comp_md_v1);
+ CHECK_MEMBER(lov_comp_md_v1, lcm_magic);
+ CHECK_MEMBER(lov_comp_md_v1, lcm_size);
+ CHECK_MEMBER(lov_comp_md_v1, lcm_layout_gen);
+ CHECK_MEMBER(lov_comp_md_v1, lcm_flags);
+ CHECK_MEMBER(lov_comp_md_v1, lcm_entry_count);
+ CHECK_MEMBER(lov_comp_md_v1, lcm_mirror_count);
+ CHECK_MEMBER(lov_comp_md_v1, lcm_padding1);
+ CHECK_MEMBER(lov_comp_md_v1, lcm_padding2);
+ CHECK_MEMBER(lov_comp_md_v1, lcm_entries[0]);
+
+ CHECK_CDEFINE(LOV_MAGIC_COMP_V1);
+
+ CHECK_VALUE(LCM_FL_NONE);
+ CHECK_VALUE(LCM_FL_RDONLY);
+ CHECK_VALUE(LCM_FL_WRITE_PENDING);
+ CHECK_VALUE(LCM_FL_SYNC_PENDING);
+}
+
+static void
check_lmv_mds_md_v1(void)
{
BLANK_LINE();
}
static void
+check_mds_op_bias(void)
+{
+ BLANK_LINE();
+ CHECK_VALUE_X(MDS_CROSS_REF);
+ CHECK_VALUE_X(MDS_PERM_BYPASS);
+ CHECK_VALUE_X(MDS_QUOTA_IGNORE);
+ CHECK_VALUE_X(MDS_KEEP_ORPHAN);
+ CHECK_VALUE_X(MDS_RECOV_OPEN);
+ CHECK_VALUE_X(MDS_DATA_MODIFIED);
+ CHECK_VALUE_X(MDS_CREATE_VOLATILE);
+ CHECK_VALUE_X(MDS_OWNEROVERRIDE);
+ CHECK_VALUE_X(MDS_HSM_RELEASE);
+ CHECK_VALUE_X(MDS_CLOSE_LAYOUT_SWAP);
+ CHECK_VALUE_X(MDS_CLOSE_LAYOUT_MERGE);
+ CHECK_VALUE_X(MDS_CLOSE_RESYNC_DONE);
+ CHECK_VALUE_X(MDS_CLOSE_LAYOUT_SPLIT);
+}
+
+static void
check_mdt_body(void)
{
BLANK_LINE();
CHECK_MEMBER(mdt_body, mbo_atime);
CHECK_MEMBER(mdt_body, mbo_ctime);
CHECK_MEMBER(mdt_body, mbo_blocks);
+ CHECK_MEMBER(mdt_body, mbo_version);
CHECK_MEMBER(mdt_body, mbo_t_state);
CHECK_MEMBER(mdt_body, mbo_fsuid);
CHECK_MEMBER(mdt_body, mbo_fsgid);
CHECK_MEMBER(mdt_body, mbo_flags);
CHECK_MEMBER(mdt_body, mbo_rdev);
CHECK_MEMBER(mdt_body, mbo_nlink);
- CHECK_MEMBER(mdt_body, mbo_unused2);
+ CHECK_MEMBER(mdt_body, mbo_layout_gen);
CHECK_MEMBER(mdt_body, mbo_suppgid);
CHECK_MEMBER(mdt_body, mbo_eadatasize);
CHECK_MEMBER(mdt_body, mbo_aclsize);
CHECK_MEMBER(mdt_body, mbo_unused3);
CHECK_MEMBER(mdt_body, mbo_uid_h);
CHECK_MEMBER(mdt_body, mbo_gid_h);
- CHECK_MEMBER(mdt_body, mbo_padding_5);
- CHECK_MEMBER(mdt_body, mbo_padding_6);
- CHECK_MEMBER(mdt_body, mbo_padding_7);
+ CHECK_MEMBER(mdt_body, mbo_projid);
+ CHECK_MEMBER(mdt_body, mbo_dom_size);
+ CHECK_MEMBER(mdt_body, mbo_dom_blocks);
CHECK_MEMBER(mdt_body, mbo_padding_8);
CHECK_MEMBER(mdt_body, mbo_padding_9);
CHECK_MEMBER(mdt_body, mbo_padding_10);
CHECK_MEMBER(mdt_rec_setattr, sa_attr_flags);
CHECK_MEMBER(mdt_rec_setattr, sa_mode);
CHECK_MEMBER(mdt_rec_setattr, sa_bias);
- CHECK_MEMBER(mdt_rec_setattr, sa_padding_3);
+ CHECK_MEMBER(mdt_rec_setattr, sa_projid);
CHECK_MEMBER(mdt_rec_setattr, sa_padding_4);
CHECK_MEMBER(mdt_rec_setattr, sa_padding_5);
}
}
static void
+check_mdt_rec_resync(void)
+{
+ BLANK_LINE();
+ CHECK_STRUCT(mdt_rec_resync);
+ CHECK_MEMBER(mdt_rec_resync, rs_opcode);
+ CHECK_MEMBER(mdt_rec_resync, rs_cap);
+ CHECK_MEMBER(mdt_rec_resync, rs_fsuid);
+ CHECK_MEMBER(mdt_rec_resync, rs_fsuid_h);
+ CHECK_MEMBER(mdt_rec_resync, rs_fsgid);
+ CHECK_MEMBER(mdt_rec_resync, rs_fsgid_h);
+ CHECK_MEMBER(mdt_rec_resync, rs_suppgid1);
+ CHECK_MEMBER(mdt_rec_resync, rs_suppgid1_h);
+ CHECK_MEMBER(mdt_rec_resync, rs_suppgid2);
+ CHECK_MEMBER(mdt_rec_resync, rs_suppgid2_h);
+ CHECK_MEMBER(mdt_rec_resync, rs_fid);
+ CHECK_MEMBER(mdt_rec_resync, rs_padding0);
+ CHECK_MEMBER(mdt_rec_resync, rs_padding1);
+ CHECK_MEMBER(mdt_rec_resync, rs_padding2);
+ CHECK_MEMBER(mdt_rec_resync, rs_padding3);
+ CHECK_MEMBER(mdt_rec_resync, rs_padding4);
+ CHECK_MEMBER(mdt_rec_resync, rs_bias);
+ CHECK_MEMBER(mdt_rec_resync, rs_padding5);
+ CHECK_MEMBER(mdt_rec_resync, rs_padding6);
+ CHECK_MEMBER(mdt_rec_resync, rs_padding7);
+ CHECK_MEMBER(mdt_rec_resync, rs_padding8);
+ CHECK_MEMBER(mdt_rec_resync, rs_padding9);
+}
+
+static void
check_mdt_rec_reint(void)
{
BLANK_LINE();
BLANK_LINE();
CHECK_STRUCT(ldlm_inodebits);
CHECK_MEMBER(ldlm_inodebits, bits);
+ CHECK_MEMBER(ldlm_inodebits, try_bits);
}
static void
CHECK_VALUE(IT_READDIR);
CHECK_VALUE(IT_GETATTR);
CHECK_VALUE(IT_LOOKUP);
- CHECK_VALUE(IT_UNLINK);
- CHECK_VALUE(IT_TRUNC);
CHECK_VALUE(IT_GETXATTR);
- CHECK_VALUE(IT_EXEC);
- CHECK_VALUE(IT_PIN);
CHECK_VALUE(IT_LAYOUT);
CHECK_VALUE(IT_QUOTA_DQACQ);
CHECK_VALUE(IT_QUOTA_CONN);
- CHECK_VALUE(IT_SETXATTR);
}
static void
CHECK_MEMBER(ldlm_gl_lquota_desc, gl_pad2);
}
+static void check_ldlm_gl_barrier_desc(void)
+{
+ BLANK_LINE();
+ CHECK_STRUCT(ldlm_gl_barrier_desc);
+ CHECK_MEMBER(ldlm_gl_barrier_desc, lgbd_status);
+ CHECK_MEMBER(ldlm_gl_barrier_desc, lgbd_timeout);
+ CHECK_MEMBER(ldlm_gl_barrier_desc, lgbd_padding);
+}
+static void check_ldlm_barrier_lvb(void)
+{
+ BLANK_LINE();
+ CHECK_STRUCT(barrier_lvb);
+ CHECK_MEMBER(barrier_lvb, lvb_status);
+ CHECK_MEMBER(barrier_lvb, lvb_index);
+ CHECK_MEMBER(barrier_lvb, lvb_padding);
+}
+
+#if LUSTRE_VERSION_CODE < OBD_OCD_VERSION(2, 13, 53, 0)
static void
check_mgs_send_param(void)
{
CHECK_CVALUE(MGS_PARAM_MAXLEN);
CHECK_MEMBER(mgs_send_param, mgs_param[MGS_PARAM_MAXLEN]);
}
+#endif
static void
check_cfg_marker(void)
CHECK_MEMBER(llog_setattr64_rec, lsr_gid_h);
CHECK_MEMBER(llog_setattr64_rec, lsr_valid);
CHECK_MEMBER(llog_setattr64_rec, lsr_tail);
+ CHECK_MEMBER(llog_setattr64_rec_v2, lsr_projid);
}
static void
CHECK_STRUCT(llog_changelog_user_rec);
CHECK_MEMBER(llog_changelog_user_rec, cur_hdr);
CHECK_MEMBER(llog_changelog_user_rec, cur_id);
- CHECK_MEMBER(llog_changelog_user_rec, cur_padding);
+ CHECK_MEMBER(llog_changelog_user_rec, cur_time);
CHECK_MEMBER(llog_changelog_user_rec, cur_endrec);
CHECK_MEMBER(llog_changelog_user_rec, cur_tail);
}
}
static void
-check_llog_cookie(void)
-{
- BLANK_LINE();
- CHECK_STRUCT(llog_cookie);
- CHECK_MEMBER(llog_cookie, lgc_lgl);
- CHECK_MEMBER(llog_cookie, lgc_subsys);
- CHECK_MEMBER(llog_cookie, lgc_index);
- CHECK_MEMBER(llog_cookie, lgc_padding);
-}
-
-static void
check_llogd_body(void)
{
BLANK_LINE();
CHECK_CVALUE(LLOG_ORIGIN_HANDLE_CREATE);
CHECK_CVALUE(LLOG_ORIGIN_HANDLE_NEXT_BLOCK);
CHECK_CVALUE(LLOG_ORIGIN_HANDLE_READ_HEADER);
- CHECK_CVALUE(LLOG_ORIGIN_HANDLE_WRITE_REC);
- CHECK_CVALUE(LLOG_ORIGIN_HANDLE_CLOSE);
- CHECK_CVALUE(LLOG_ORIGIN_CONNECT);
- CHECK_CVALUE(LLOG_CATINFO);
CHECK_CVALUE(LLOG_ORIGIN_HANDLE_PREV_BLOCK);
- CHECK_CVALUE(LLOG_ORIGIN_HANDLE_DESTROY);
CHECK_CVALUE(LLOG_FIRST_OPC);
CHECK_CVALUE(LLOG_LAST_OPC);
}
static void
+check_mgs_nidtbl_entry(void)
+{
+ BLANK_LINE();
+ CHECK_STRUCT(mgs_nidtbl_entry);
+ CHECK_MEMBER(mgs_nidtbl_entry, mne_version);
+ CHECK_MEMBER(mgs_nidtbl_entry, mne_instance);
+ CHECK_MEMBER(mgs_nidtbl_entry, mne_index);
+ CHECK_MEMBER(mgs_nidtbl_entry, mne_length);
+ CHECK_MEMBER(mgs_nidtbl_entry, mne_type);
+ CHECK_MEMBER(mgs_nidtbl_entry, mne_nid_type);
+ CHECK_MEMBER(mgs_nidtbl_entry, mne_nid_size);
+ CHECK_MEMBER(mgs_nidtbl_entry, mne_nid_count);
+ CHECK_MEMBER(mgs_nidtbl_entry, u.nids[0]);
+}
+
+static void
+check_mgs_config_body(void)
+{
+ BLANK_LINE();
+ CHECK_STRUCT(mgs_config_body);
+ CHECK_MEMBER(mgs_config_body, mcb_name);
+ CHECK_MEMBER(mgs_config_body, mcb_offset);
+ CHECK_MEMBER(mgs_config_body, mcb_type);
+ CHECK_MEMBER(mgs_config_body, mcb_nm_cur_pass);
+ CHECK_MEMBER(mgs_config_body, mcb_bits);
+ CHECK_MEMBER(mgs_config_body, mcb_units);
+
+ CHECK_CVALUE(CONFIG_T_CONFIG);
+ CHECK_CVALUE(CONFIG_T_SPTLRPC);
+ CHECK_CVALUE(CONFIG_T_RECOVER);
+ CHECK_CVALUE(CONFIG_T_PARAMS);
+ CHECK_CVALUE(CONFIG_T_NODEMAP);
+ CHECK_CVALUE(CONFIG_T_BARRIER);
+}
+
+static void
+check_mgs_config_res(void)
+{
+ BLANK_LINE();
+ CHECK_STRUCT(mgs_config_res);
+ CHECK_MEMBER(mgs_config_res, mcr_offset);
+ CHECK_MEMBER(mgs_config_res, mcr_size);
+}
+
+static void
check_lustre_capa(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);
+ printf("#ifndef HAVE_STRUCT_POSIX_ACL_XATTR\n");
CHECK_MEMBER_TYPEDEF(posix_acl_xattr_header, a_entries);
+ printf("#endif /* HAVE_STRUCT_POSIX_ACL_XATTR */\n");
printf("#endif /* CONFIG_FS_POSIX_ACL */\n");
}
CHECK_MEMBER(link_ea_header, leh_magic);
CHECK_MEMBER(link_ea_header, leh_reccount);
CHECK_MEMBER(link_ea_header, leh_len);
- CHECK_MEMBER(link_ea_header, padding1);
- CHECK_MEMBER(link_ea_header, padding2);
+ CHECK_MEMBER(link_ea_header, leh_overflow_time);
+ CHECK_MEMBER(link_ea_header, leh_padding);
CHECK_CDEFINE(LINK_EA_MAGIC);
}
static void check_layout_intent(void)
{
- BLANK_LINE();
- CHECK_STRUCT(layout_intent);
- CHECK_MEMBER(layout_intent, li_opc);
- CHECK_MEMBER(layout_intent, li_flags);
- CHECK_MEMBER(layout_intent, li_start);
- CHECK_MEMBER(layout_intent, li_end);
+ BLANK_LINE();
+ CHECK_STRUCT(layout_intent);
+ CHECK_MEMBER(layout_intent, li_opc);
+ CHECK_MEMBER(layout_intent, li_flags);
+ CHECK_MEMBER(layout_intent, li_extent);
CHECK_VALUE(LAYOUT_INTENT_ACCESS);
CHECK_VALUE(LAYOUT_INTENT_READ);
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_comp_id);
+ CHECK_MEMBER(lfsck_request, lr_padding_0);
CHECK_MEMBER(lfsck_request, lr_padding_1);
CHECK_MEMBER(lfsck_request, lr_padding_2);
-
+ CHECK_MEMBER(lfsck_request, lr_padding_3);
+ printf("#ifdef HAVE_SERVER_SUPPORT\n");
CHECK_VALUE_X(LFSCK_TYPE_SCRUB);
CHECK_VALUE_X(LFSCK_TYPE_LAYOUT);
CHECK_VALUE_X(LFSCK_TYPE_NAMESPACE);
-
+ printf("#endif\n");
CHECK_VALUE(LE_LASTID_REBUILDING);
CHECK_VALUE(LE_LASTID_REBUILT);
CHECK_VALUE(LE_PHASE1_DONE);
CHECK_VALUE(LE_START);
CHECK_VALUE(LE_STOP);
CHECK_VALUE(LE_QUERY);
- CHECK_VALUE(LE_FID_ACCESSED);
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_MEMBER(llog_update_record, lur_update_rec);
}
-static void system_string(char *cmdline, char *str, int len)
-{
- int fds[2];
- int rc;
- pid_t pid;
-
- rc = pipe(fds);
- if (rc != 0)
- abort();
-
- pid = fork();
- if (pid == 0) {
- /* child */
- int fd = fileno(stdout);
-
- rc = dup2(fds[1], fd);
- if (rc != fd)
- abort();
-
- exit(system(cmdline));
- /* notreached */
- } else if ((int)pid < 0) {
- abort();
- } else {
- FILE *f = fdopen(fds[0], "r");
-
- if (f == NULL)
- abort();
-
- close(fds[1]);
-
- if (fgets(str, len, f) == NULL)
- abort();
-
- if (waitpid(pid, &rc, 0) != pid)
- abort();
-
- if (!WIFEXITED(rc) || WEXITSTATUS(rc) != 0)
- abort();
-
- if (strnlen(str, len) == len)
- str[len - 1] = 0;
-
- if (str[strlen(str) - 1] == '\n')
- str[strlen(str) - 1] = 0;
-
- fclose(f);
- }
-}
-
int
main(int argc, char **argv)
{
- char unameinfo[80];
- char gccinfo[80];
-
- system_string("uname -a", unameinfo, sizeof(unameinfo));
- system_string(CC " -v 2>&1 | tail -1", gccinfo, sizeof(gccinfo));
+ BLANK_LINE();
printf ("void lustre_assert_wire_constants(void)\n"
"{\n"
- " /* Wire protocol assertions generated by 'wirecheck'\n"
- " * (make -C lustre/utils newwiretest)\n"
- " * running on %s\n"
- " * with %s */\n"
- "\n", unameinfo, gccinfo);
+ " /* Wire protocol assertions generated by 'wirecheck'\n"
+ " * (make -C lustre/utils newwiretest)\n"
+ " */\n");
- BLANK_LINE ();
+ BLANK_LINE();
COMMENT("Constants...");
CHECK_VALUE(PTL_RPC_MSG_REQUEST);
CHECK_VALUE_64X(MDS_ATTR_CTIME_SET);
CHECK_VALUE_64X(MDS_ATTR_FROM_OPEN);
CHECK_VALUE_64X(MDS_ATTR_BLOCKS);
+ CHECK_VALUE_64X(MDS_ATTR_PROJID);
+ CHECK_VALUE_64X(MDS_ATTR_LSIZE);
+ CHECK_VALUE_64X(MDS_ATTR_LBLOCKS);
CHECK_VALUE(FLD_QUERY);
CHECK_VALUE(FLD_READ);
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(MGS_TARGET_REG);
CHECK_VALUE(MGS_TARGET_DEL);
CHECK_VALUE(MGS_SET_INFO);
+ CHECK_VALUE(MGS_CONFIG_READ);
CHECK_VALUE(MGS_LAST_OPC);
CHECK_VALUE(SEC_CTX_INIT);
CHECK_STRUCT(obd_uuid);
check_lu_seq_range();
check_lustre_mdt_attrs();
+ check_lustre_ost_attrs();
CHECK_VALUE(OUT_CREATE);
CHECK_VALUE(OUT_DESTROY);
CHECK_VALUE(OUT_XATTR_DEL);
CHECK_VALUE(OUT_PUNCH);
CHECK_VALUE(OUT_READ);
+ CHECK_VALUE(OUT_NOOP);
+ CHECK_VALUE(OUT_XATTR_LIST);
+ check_som_attrs();
check_hsm_attrs();
check_ost_id();
check_lu_dirent();
check_luda_type();
check_lu_dirpage();
check_lu_ladvise();
+ check_ladvise_hdr();
check_lustre_handle();
check_lustre_msg_v2();
check_ptlrpc_body();
check_obd_connect_data();
+ check_ost_layout();
check_obdo();
check_lov_ost_data_v1();
check_lov_mds_md_v1();
check_lov_mds_md_v3();
+ check_lov_comp_md_entry_v1();
+ check_lov_comp_md_v1();
check_lmv_mds_md_v1();
check_obd_statfs();
check_obd_ioobj();
check_niobuf_remote();
check_ost_body();
check_ll_fid();
+ check_mds_op_bias();
check_mdt_body();
check_mdt_ioepoch();
check_mdt_rec_setattr();
check_mdt_rec_unlink();
check_mdt_rec_rename();
check_mdt_rec_setxattr();
+ check_mdt_rec_resync();
check_mdt_rec_reint();
check_lmv_desc();
check_lov_desc();
check_ldlm_ost_lvb();
check_ldlm_lquota_lvb();
check_ldlm_gl_lquota_desc();
+ check_ldlm_gl_barrier_desc();
+ check_ldlm_barrier_lvb();
+#if LUSTRE_VERSION_CODE < OBD_OCD_VERSION(2, 13, 53, 0)
check_mgs_send_param();
+#endif
check_cfg_marker();
check_llog_logid();
check_llog_catid();
check_llog_gen();
check_llog_gen_rec();
check_llog_log_hdr();
- check_llog_cookie();
check_llogd_body();
check_llogd_conn_body();
check_ll_fiemap_info_key();
check_quota_body();
check_mgs_target_info();
+ check_mgs_nidtbl_entry();
+ check_mgs_config_body();
+ check_mgs_config_res();
check_lustre_capa();
check_lustre_capa_key();
check_getinfo_fid2path();