* Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Use is subject to license terms.
*
- * Copyright (c) 2011, 2013, Intel Corporation.
+ * Copyright (c) 2011, 2015, Intel Corporation.
*/
/*
* This file is part of Lustre, http://www.lustre.org/
*/
#include <stdio.h>
+#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
-#include <liblustre.h>
-#include <lustre_lib.h>
#include <lustre/lustre_idl.h>
+#include <lustre/lustre_lfsck_user.h>
#include <lustre_disk.h>
#define BLANK_LINE() \
CHECK_VALUE_X(LMAI_RELEASED);
CHECK_VALUE_X(LMAC_HSM);
- CHECK_VALUE_X(LMAC_SOM);
CHECK_VALUE_X(LMAC_NOT_IN_OI);
CHECK_VALUE_X(LMAC_FID_ON_OST);
}
static void
-check_som_attrs(void)
-{
- BLANK_LINE();
- CHECK_STRUCT(som_attrs);
- CHECK_MEMBER(som_attrs, som_compat);
- CHECK_MEMBER(som_attrs, som_incompat);
- CHECK_MEMBER(som_attrs, som_ioepoch);
- CHECK_MEMBER(som_attrs, som_size);
- CHECK_MEMBER(som_attrs, som_blocks);
- CHECK_MEMBER(som_attrs, som_mountid);
-}
-
-static void
check_hsm_attrs(void)
{
BLANK_LINE();
CHECK_VALUE(FID_SEQ_OST_MDT0);
CHECK_VALUE(FID_SEQ_LLOG);
CHECK_VALUE(FID_SEQ_ECHO);
- CHECK_VALUE(FID_SEQ_OST_MDT1);
- CHECK_VALUE(FID_SEQ_OST_MAX);
+ CHECK_VALUE(FID_SEQ_UNUSED_START);
+ CHECK_VALUE(FID_SEQ_UNUSED_END);
CHECK_VALUE(FID_SEQ_RSVD);
CHECK_VALUE(FID_SEQ_IGIF);
CHECK_VALUE_64X(FID_SEQ_IGIF_MAX);
CHECK_VALUE_64X(FID_SEQ_QUOTA);
CHECK_VALUE_64X(FID_SEQ_QUOTA_GLB);
CHECK_VALUE_64X(FID_SEQ_ROOT);
+ CHECK_VALUE_64X(FID_SEQ_LAYOUT_RBTREE);
+ CHECK_VALUE_64X(FID_SEQ_UPDATE_LOG);
+ CHECK_VALUE_64X(FID_SEQ_UPDATE_LOG_DIR);
CHECK_VALUE_64X(FID_SEQ_NORMAL);
CHECK_VALUE_64X(FID_SEQ_LOV_DEFAULT);
CHECK_MEMBER(lustre_msg_v2, lm_padding_3);
CHECK_MEMBER(lustre_msg_v2, lm_buflens[0]);
- CHECK_DEFINE_X(LUSTRE_MSG_MAGIC_V1);
CHECK_DEFINE_X(LUSTRE_MSG_MAGIC_V2);
- CHECK_DEFINE_X(LUSTRE_MSG_MAGIC_V1_SWABBED);
CHECK_DEFINE_X(LUSTRE_MSG_MAGIC_V2_SWABBED);
}
CHECK_MEMBER(ptlrpc_body, pb_opc);
CHECK_MEMBER(ptlrpc_body, pb_status);
CHECK_MEMBER(ptlrpc_body, pb_last_xid);
- CHECK_MEMBER(ptlrpc_body, pb_last_seen);
+ CHECK_MEMBER(ptlrpc_body, pb_tag);
+ CHECK_MEMBER(ptlrpc_body, pb_padding0);
+ CHECK_MEMBER(ptlrpc_body, pb_padding1);
CHECK_MEMBER(ptlrpc_body, pb_last_committed);
CHECK_MEMBER(ptlrpc_body, pb_transno);
CHECK_MEMBER(ptlrpc_body, pb_flags);
CHECK_MEMBER(ptlrpc_body, pb_slv);
CHECK_CVALUE(PTLRPC_NUM_VERSIONS);
CHECK_MEMBER(ptlrpc_body, pb_pre_versions);
- CHECK_MEMBER(ptlrpc_body, pb_padding);
- CHECK_CVALUE(JOBSTATS_JOBID_SIZE);
+ CHECK_MEMBER(ptlrpc_body, pb_mbits);
+ CHECK_MEMBER(ptlrpc_body, pb_padding64_0);
+ CHECK_MEMBER(ptlrpc_body, pb_padding64_1);
+ CHECK_MEMBER(ptlrpc_body, pb_padding64_2);
+ CHECK_CVALUE(LUSTRE_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_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_tag);
+ CHECK_MEMBER_SAME(ptlrpc_body_v3, ptlrpc_body_v2, pb_padding0);
+ CHECK_MEMBER_SAME(ptlrpc_body_v3, ptlrpc_body_v2, pb_padding1);
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_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_MEMBER_SAME(ptlrpc_body_v3, ptlrpc_body_v2, pb_mbits);
+ CHECK_MEMBER_SAME(ptlrpc_body_v3, ptlrpc_body_v2, pb_padding64_0);
+ CHECK_MEMBER_SAME(ptlrpc_body_v3, ptlrpc_body_v2, pb_padding64_1);
+ CHECK_MEMBER_SAME(ptlrpc_body_v3, ptlrpc_body_v2, pb_padding64_2);
CHECK_VALUE(MSG_PTLRPC_BODY_OFF);
CHECK_VALUE(REQ_REC_OFF);
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_PINGLESS);
CHECK_DEFINE_64X(OBD_CONNECT_FLOCK_DEAD);
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_DEFINE_64X(OBD_CONNECT_SUBTREE);
+ CHECK_DEFINE_64X(OBD_CONNECT_BULK_MBITS);
CHECK_VALUE_X(OBD_CKSUM_CRC32);
CHECK_VALUE_X(OBD_CKSUM_ADLER);
CHECK_DEFINE_64X(OBD_MD_FLHANDLE);
CHECK_DEFINE_64X(OBD_MD_FLCKSUM);
CHECK_DEFINE_64X(OBD_MD_FLQOS);
- CHECK_DEFINE_64X(OBD_MD_FLCOOKIE);
CHECK_DEFINE_64X(OBD_MD_FLGROUP);
CHECK_DEFINE_64X(OBD_MD_FLFID);
CHECK_DEFINE_64X(OBD_MD_FLEPOCH);
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);
{
BLANK_LINE();
CHECK_STRUCT(mdt_body);
- CHECK_MEMBER(mdt_body, fid1);
- CHECK_MEMBER(mdt_body, fid2);
- CHECK_MEMBER(mdt_body, handle);
- CHECK_MEMBER(mdt_body, valid);
- CHECK_MEMBER(mdt_body, size);
- CHECK_MEMBER(mdt_body, mtime);
- CHECK_MEMBER(mdt_body, atime);
- CHECK_MEMBER(mdt_body, ctime);
- CHECK_MEMBER(mdt_body, blocks);
- CHECK_MEMBER(mdt_body, t_state);
- CHECK_MEMBER(mdt_body, fsuid);
- CHECK_MEMBER(mdt_body, fsgid);
- CHECK_MEMBER(mdt_body, capability);
- CHECK_MEMBER(mdt_body, mode);
- CHECK_MEMBER(mdt_body, uid);
- CHECK_MEMBER(mdt_body, gid);
- CHECK_MEMBER(mdt_body, flags);
- CHECK_MEMBER(mdt_body, rdev);
- CHECK_MEMBER(mdt_body, nlink);
- CHECK_MEMBER(mdt_body, unused2);
- CHECK_MEMBER(mdt_body, suppgid);
- CHECK_MEMBER(mdt_body, eadatasize);
- CHECK_MEMBER(mdt_body, aclsize);
- CHECK_MEMBER(mdt_body, max_mdsize);
- CHECK_MEMBER(mdt_body, max_cookiesize);
- CHECK_MEMBER(mdt_body, uid_h);
- CHECK_MEMBER(mdt_body, gid_h);
- CHECK_MEMBER(mdt_body, padding_5);
- CHECK_MEMBER(mdt_body, padding_6);
- CHECK_MEMBER(mdt_body, padding_7);
- CHECK_MEMBER(mdt_body, padding_8);
- CHECK_MEMBER(mdt_body, padding_9);
- CHECK_MEMBER(mdt_body, padding_10);
+ CHECK_MEMBER(mdt_body, mbo_fid1);
+ CHECK_MEMBER(mdt_body, mbo_fid2);
+ CHECK_MEMBER(mdt_body, mbo_handle);
+ CHECK_MEMBER(mdt_body, mbo_valid);
+ CHECK_MEMBER(mdt_body, mbo_size);
+ CHECK_MEMBER(mdt_body, mbo_mtime);
+ CHECK_MEMBER(mdt_body, mbo_atime);
+ CHECK_MEMBER(mdt_body, mbo_ctime);
+ CHECK_MEMBER(mdt_body, mbo_blocks);
+ CHECK_MEMBER(mdt_body, mbo_t_state);
+ CHECK_MEMBER(mdt_body, mbo_fsuid);
+ CHECK_MEMBER(mdt_body, mbo_fsgid);
+ CHECK_MEMBER(mdt_body, mbo_capability);
+ CHECK_MEMBER(mdt_body, mbo_mode);
+ CHECK_MEMBER(mdt_body, mbo_uid);
+ CHECK_MEMBER(mdt_body, mbo_gid);
+ 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_suppgid);
+ CHECK_MEMBER(mdt_body, mbo_eadatasize);
+ CHECK_MEMBER(mdt_body, mbo_aclsize);
+ CHECK_MEMBER(mdt_body, mbo_max_mdsize);
+ 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_padding_8);
+ CHECK_MEMBER(mdt_body, mbo_padding_9);
+ CHECK_MEMBER(mdt_body, mbo_padding_10);
CHECK_VALUE_O(MDS_FMODE_CLOSED);
CHECK_VALUE_O(MDS_FMODE_EXEC);
- CHECK_VALUE_O(MDS_FMODE_EPOCH);
- CHECK_VALUE_O(MDS_FMODE_TRUNC);
- CHECK_VALUE_O(MDS_FMODE_SOM);
CHECK_VALUE_O(MDS_OPEN_CREATED);
CHECK_VALUE_O(MDS_OPEN_CROSS);
CHECK_DEFINE_X(LUSTRE_SYNC_FL);
CHECK_DEFINE_X(LUSTRE_IMMUTABLE_FL);
CHECK_DEFINE_X(LUSTRE_APPEND_FL);
+ CHECK_DEFINE_X(LUSTRE_NODUMP_FL);
CHECK_DEFINE_X(LUSTRE_NOATIME_FL);
+ CHECK_DEFINE_X(LUSTRE_INDEX_FL);
CHECK_DEFINE_X(LUSTRE_DIRSYNC_FL);
+ CHECK_DEFINE_X(LUSTRE_TOPDIR_FL);
+ CHECK_DEFINE_X(LUSTRE_DIRECTIO_FL);
+ CHECK_DEFINE_X(LUSTRE_INLINE_DATA_FL);
CHECK_DEFINE_X(MDS_INODELOCK_LOOKUP);
CHECK_DEFINE_X(MDS_INODELOCK_UPDATE);
{
BLANK_LINE();
CHECK_STRUCT(mdt_ioepoch);
- CHECK_MEMBER(mdt_ioepoch, handle);
- CHECK_MEMBER(mdt_ioepoch, ioepoch);
- CHECK_MEMBER(mdt_ioepoch, flags);
- CHECK_MEMBER(mdt_ioepoch, padding);
+ CHECK_MEMBER(mdt_ioepoch, mio_handle);
+ CHECK_MEMBER(mdt_ioepoch, mio_unused1);
+ CHECK_MEMBER(mdt_ioepoch, mio_unused2);
+ CHECK_MEMBER(mdt_ioepoch, mio_padding);
}
static void
BLANK_LINE();
CHECK_STRUCT(ldlm_intent);
CHECK_MEMBER(ldlm_intent, opc);
+ CHECK_VALUE(IT_OPEN);
+ CHECK_VALUE(IT_CREAT);
+ 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
BLANK_LINE();
CHECK_STRUCT(ldlm_resource_desc);
CHECK_MEMBER(ldlm_resource_desc, lr_type);
- CHECK_MEMBER(ldlm_resource_desc, lr_padding);
+ CHECK_MEMBER(ldlm_resource_desc, lr_pad);
CHECK_MEMBER(ldlm_resource_desc, lr_name);
}
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_padding);
+ CHECK_MEMBER(llog_setattr64_rec, lsr_valid);
CHECK_MEMBER(llog_setattr64_rec, lsr_tail);
}
}
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(llog_log_hdr, llh_flags);
CHECK_MEMBER(llog_log_hdr, llh_cat_idx);
CHECK_MEMBER(llog_log_hdr, llh_tgtuuid);
- CHECK_MEMBER(llog_log_hdr, llh_reserved);
- CHECK_MEMBER(llog_log_hdr, llh_bitmap);
- CHECK_MEMBER(llog_log_hdr, llh_tail);
}
static void
CHECK_CVALUE(LLOG_ORIGIN_HANDLE_DESTROY);
CHECK_CVALUE(LLOG_FIRST_OPC);
CHECK_CVALUE(LLOG_LAST_OPC);
+
+ CHECK_CVALUE(LLOG_CONFIG_ORIG_CTXT);
+ CHECK_CVALUE(LLOG_CONFIG_REPL_CTXT);
+ CHECK_CVALUE(LLOG_MDS_OST_ORIG_CTXT);
+ CHECK_CVALUE(LLOG_MDS_OST_REPL_CTXT);
+ CHECK_CVALUE(LLOG_SIZE_ORIG_CTXT);
+ CHECK_CVALUE(LLOG_SIZE_REPL_CTXT);
+ CHECK_CVALUE(LLOG_TEST_ORIG_CTXT);
+ CHECK_CVALUE(LLOG_TEST_REPL_CTXT);
+ CHECK_CVALUE(LLOG_CHANGELOG_ORIG_CTXT);
+ CHECK_CVALUE(LLOG_CHANGELOG_REPL_CTXT);
+ CHECK_CVALUE(LLOG_CHANGELOG_USER_ORIG_CTXT);
+ CHECK_CVALUE(LLOG_AGENT_ORIG_CTXT);
+ CHECK_CVALUE(LLOG_UPDATELOG_ORIG_CTXT);
+ CHECK_CVALUE(LLOG_UPDATELOG_REPL_CTXT);
+ CHECK_CVALUE(LLOG_MAX_CTXTS);
}
static void
{
BLANK_LINE();
CHECK_STRUCT(ll_fiemap_info_key);
- CHECK_MEMBER(ll_fiemap_info_key, name[8]);
- CHECK_MEMBER(ll_fiemap_info_key, oa);
- CHECK_MEMBER(ll_fiemap_info_key, fiemap);
+ CHECK_MEMBER(ll_fiemap_info_key, lfik_name[8]);
+ CHECK_MEMBER(ll_fiemap_info_key, lfik_oa);
+ CHECK_MEMBER(ll_fiemap_info_key, lfik_fiemap);
}
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)
{
BLANK_LINE();
- CHECK_STRUCT(ll_user_fiemap);
- CHECK_MEMBER(ll_user_fiemap, fm_start);
- CHECK_MEMBER(ll_user_fiemap, fm_length);
- CHECK_MEMBER(ll_user_fiemap, fm_flags);
- CHECK_MEMBER(ll_user_fiemap, fm_mapped_extents);
- CHECK_MEMBER(ll_user_fiemap, fm_extent_count);
- CHECK_MEMBER(ll_user_fiemap, fm_reserved);
- CHECK_MEMBER(ll_user_fiemap, fm_extents);
+ CHECK_STRUCT(fiemap);
+ CHECK_MEMBER(fiemap, fm_start);
+ CHECK_MEMBER(fiemap, fm_length);
+ CHECK_MEMBER(fiemap, fm_flags);
+ CHECK_MEMBER(fiemap, fm_mapped_extents);
+ CHECK_MEMBER(fiemap, fm_extent_count);
+ CHECK_MEMBER(fiemap, fm_reserved);
+ CHECK_MEMBER(fiemap, fm_extents);
CHECK_CDEFINE(FIEMAP_FLAG_SYNC);
CHECK_CDEFINE(FIEMAP_FLAG_XATTR);
check_ll_fiemap_extent(void)
{
BLANK_LINE();
- CHECK_STRUCT(ll_fiemap_extent);
- CHECK_MEMBER(ll_fiemap_extent, fe_logical);
- CHECK_MEMBER(ll_fiemap_extent, fe_physical);
- CHECK_MEMBER(ll_fiemap_extent, fe_length);
- CHECK_MEMBER(ll_fiemap_extent, fe_flags);
- CHECK_MEMBER(ll_fiemap_extent, fe_device);
+ CHECK_STRUCT(fiemap_extent);
+ CHECK_MEMBER(fiemap_extent, fe_logical);
+ CHECK_MEMBER(fiemap_extent, fe_physical);
+ CHECK_MEMBER(fiemap_extent, fe_length);
+ CHECK_MEMBER(fiemap_extent, fe_flags);
+ CHECK_MEMBER(fiemap_extent, fe_device);
CHECK_CDEFINE(FIEMAP_EXTENT_LAST);
CHECK_CDEFINE(FIEMAP_EXTENT_UNKNOWN);
CHECK_MEMBER(hsm_user_import, hui_archive_id);
}
-static void check_update_buf(void)
+static void check_object_update_param(void)
+{
+ BLANK_LINE();
+ CHECK_STRUCT(object_update_param);
+ CHECK_MEMBER(object_update_param, oup_len);
+ CHECK_MEMBER(object_update_param, oup_padding);
+ CHECK_MEMBER(object_update_param, oup_padding2);
+ CHECK_MEMBER(object_update_param, oup_buf);
+}
+
+static void check_object_update(void)
+{
+ BLANK_LINE();
+ CHECK_STRUCT(object_update);
+ CHECK_MEMBER(object_update, ou_type);
+ CHECK_MEMBER(object_update, ou_params_count);
+ CHECK_MEMBER(object_update, ou_result_size);
+ CHECK_MEMBER(object_update, ou_flags);
+ CHECK_MEMBER(object_update, ou_padding1);
+ CHECK_MEMBER(object_update, ou_batchid);
+ CHECK_MEMBER(object_update, ou_fid);
+ CHECK_MEMBER(object_update, ou_params);
+}
+
+static void check_object_update_request(void)
+{
+ BLANK_LINE();
+ CHECK_STRUCT(object_update_request);
+ CHECK_MEMBER(object_update_request, ourq_magic);
+ CHECK_MEMBER(object_update_request, ourq_count);
+ CHECK_MEMBER(object_update_request, ourq_padding);
+ CHECK_MEMBER(object_update_request, ourq_updates);
+}
+
+static void check_object_update_result(void)
+{
+ BLANK_LINE();
+ CHECK_STRUCT(object_update_result);
+ CHECK_MEMBER(object_update_result, our_rc);
+ CHECK_MEMBER(object_update_result, our_datalen);
+ CHECK_MEMBER(object_update_result, our_padding);
+ CHECK_MEMBER(object_update_result, our_data);
+}
+
+static void check_object_update_reply(void)
{
BLANK_LINE();
- CHECK_STRUCT(update_buf);
- CHECK_MEMBER(update_buf, ub_magic);
- CHECK_MEMBER(update_buf, ub_count);
- CHECK_MEMBER(update_buf, ub_bufs);
+ CHECK_STRUCT(object_update_reply);
+ CHECK_MEMBER(object_update_reply, ourp_magic);
+ CHECK_MEMBER(object_update_reply, ourp_count);
+ CHECK_MEMBER(object_update_reply, ourp_padding);
+ CHECK_MEMBER(object_update_reply, ourp_lens);
}
-static void check_update_reply(void)
+static void check_out_update_header(void)
{
BLANK_LINE();
- CHECK_STRUCT(update_reply);
- CHECK_MEMBER(update_reply, ur_version);
- CHECK_MEMBER(update_reply, ur_count);
- CHECK_MEMBER(update_reply, ur_lens);
+ CHECK_STRUCT(out_update_header);
+ CHECK_MEMBER(out_update_header, ouh_magic);
+ CHECK_MEMBER(out_update_header, ouh_count);
+ CHECK_MEMBER(out_update_header, ouh_inline_length);
+ CHECK_MEMBER(out_update_header, ouh_reply_size);
+ CHECK_MEMBER(out_update_header, ouh_inline_data);
}
-static void check_update(void)
+static void check_out_update_buffer(void)
{
BLANK_LINE();
- CHECK_STRUCT(update);
- CHECK_MEMBER(update, u_type);
- CHECK_MEMBER(update, u_batchid);
- CHECK_MEMBER(update, u_fid);
- CHECK_MEMBER(update, u_lens);
- CHECK_MEMBER(update, u_bufs);
+ CHECK_STRUCT(out_update_buffer);
+ CHECK_MEMBER(out_update_buffer, oub_size);
+ CHECK_MEMBER(out_update_buffer, oub_padding);
}
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_NAMESPACE);
+
+ CHECK_VALUE(LE_LASTID_REBUILDING);
+ CHECK_VALUE(LE_LASTID_REBUILT);
+ CHECK_VALUE(LE_PHASE1_DONE);
+ CHECK_VALUE(LE_PHASE2_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_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_MEMBER(lfsck_reply, lr_padding_2);
}
+static void check_update_params(void)
+{
+ BLANK_LINE();
+ CHECK_STRUCT(update_params);
+ CHECK_MEMBER(update_params, up_params);
+}
+
+static void check_update_op(void)
+{
+ BLANK_LINE();
+ CHECK_STRUCT(update_op);
+ CHECK_MEMBER(update_op, uop_fid);
+ CHECK_MEMBER(update_op, uop_type);
+ CHECK_MEMBER(update_op, uop_param_count);
+ CHECK_MEMBER(update_op, uop_params_off);
+}
+
+static void check_update_ops(void)
+{
+ BLANK_LINE();
+ CHECK_STRUCT(update_ops);
+ CHECK_MEMBER(update_ops, uops_op);
+}
+
+static void check_update_records(void)
+{
+ BLANK_LINE();
+ CHECK_STRUCT(update_records);
+ CHECK_MEMBER(update_records, ur_master_transno);
+ CHECK_MEMBER(update_records, ur_batchid);
+ CHECK_MEMBER(update_records, ur_flags);
+ CHECK_MEMBER(update_records, ur_index);
+ CHECK_MEMBER(update_records, ur_update_count);
+ CHECK_MEMBER(update_records, ur_param_count);
+
+ CHECK_VALUE_X(UPDATE_RECORD_CONTINUE);
+}
+
+static void check_llog_update_record(void)
+{
+ BLANK_LINE();
+ CHECK_STRUCT(llog_update_record);
+ CHECK_MEMBER(llog_update_record, lur_hdr);
+ CHECK_MEMBER(llog_update_record, lur_update_rec);
+}
+
static void system_string(char *cmdline, char *str, int len)
{
int fds[2];
CHECK_VALUE(REINT_OPEN);
CHECK_VALUE(REINT_SETXATTR);
CHECK_VALUE(REINT_RMENTRY);
+ CHECK_VALUE(REINT_MIGRATE);
CHECK_VALUE(REINT_MAX);
CHECK_VALUE_X(DISP_IT_EXECD);
CHECK_VALUE(MDS_STATUS_CONN);
CHECK_VALUE(MDS_STATUS_LOV);
- CHECK_VALUE(LUSTRE_BFLAG_UNCOMMITTED_WRITES);
-
- CHECK_VALUE_X(MF_SOM_CHANGE);
- CHECK_VALUE_X(MF_EPOCH_OPEN);
- CHECK_VALUE_X(MF_EPOCH_CLOSE);
- CHECK_VALUE_X(MF_MDC_CANCEL_FID1);
- CHECK_VALUE_X(MF_MDC_CANCEL_FID2);
- CHECK_VALUE_X(MF_MDC_CANCEL_FID3);
- CHECK_VALUE_X(MF_MDC_CANCEL_FID4);
- CHECK_VALUE_X(MF_SOM_AU);
- CHECK_VALUE_X(MF_GETATTR_LOCK);
-
CHECK_VALUE_64X(MDS_ATTR_MODE);
CHECK_VALUE_64X(MDS_ATTR_UID);
CHECK_VALUE_64X(MDS_ATTR_GID);
CHECK_VALUE(SEQ_FIRST_OPC);
CHECK_VALUE(SEQ_LAST_OPC);
+ CHECK_VALUE(LFSCK_NOTIFY);
+ CHECK_VALUE(LFSCK_QUERY);
+ CHECK_VALUE(LFSCK_FIRST_OPC);
+ CHECK_VALUE(LFSCK_LAST_OPC);
+
CHECK_VALUE(SEQ_ALLOC_SUPER);
CHECK_VALUE(SEQ_ALLOC_META);
CHECK_CVALUE(LUSTRE_RES_ID_VER_OID_OFF);
/* CHECK_CVALUE(LUSTRE_RES_ID_WAS_VER_OFF); packed with OID */
- CHECK_VALUE(UPDATE_OBJ);
- CHECK_VALUE(UPDATE_LAST_OPC);
+ CHECK_VALUE(OUT_UPDATE);
+ CHECK_VALUE(OUT_UPDATE_LAST_OPC);
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_lu_seq_range();
check_lustre_mdt_attrs();
- CHECK_VALUE(OBJ_CREATE);
- CHECK_VALUE(OBJ_DESTROY);
- CHECK_VALUE(OBJ_REF_ADD);
- CHECK_VALUE(OBJ_REF_DEL);
- CHECK_VALUE(OBJ_ATTR_SET);
- CHECK_VALUE(OBJ_ATTR_GET);
- CHECK_VALUE(OBJ_XATTR_SET);
- CHECK_VALUE(OBJ_XATTR_GET);
- CHECK_VALUE(OBJ_INDEX_LOOKUP);
- CHECK_VALUE(OBJ_INDEX_LOOKUP);
- CHECK_VALUE(OBJ_INDEX_INSERT);
- CHECK_VALUE(OBJ_INDEX_DELETE);
-
- check_som_attrs();
+ CHECK_VALUE(OUT_CREATE);
+ CHECK_VALUE(OUT_DESTROY);
+ CHECK_VALUE(OUT_REF_ADD);
+ CHECK_VALUE(OUT_REF_DEL);
+ CHECK_VALUE(OUT_ATTR_SET);
+ CHECK_VALUE(OUT_ATTR_GET);
+ CHECK_VALUE(OUT_XATTR_SET);
+ CHECK_VALUE(OUT_XATTR_GET);
+ CHECK_VALUE(OUT_INDEX_LOOKUP);
+ CHECK_VALUE(OUT_INDEX_LOOKUP);
+ CHECK_VALUE(OUT_INDEX_INSERT);
+ CHECK_VALUE(OUT_INDEX_DELETE);
+ CHECK_VALUE(OUT_WRITE);
+ CHECK_VALUE(OUT_XATTR_DEL);
+ CHECK_VALUE(OUT_PUNCH);
+ CHECK_VALUE(OUT_READ);
+
check_hsm_attrs();
check_ost_id();
check_lu_dirent();
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();
- printf("#ifdef LIBLUSTRE_POSIX_ACL\n");
-#ifndef LIBLUSTRE_POSIX_ACL
-#error build generator without LIBLUSTRE_POSIX_ACL defined - produce wrong check code.
-#endif
check_posix_acl_xattr_entry();
check_posix_acl_xattr_header();
- printf("#endif\n");
check_link_ea_header();
check_link_ea_entry();
check_layout_intent();
check_hsm_user_request();
check_hsm_user_import();
- check_update_buf();
- check_update_reply();
- check_update();
+ check_object_update_param();
+ check_object_update();
+ check_object_update_request();
+ check_object_update_result();
+ check_object_update_reply();
+ check_out_update_header();
+ check_out_update_buffer();
check_lfsck_request();
check_lfsck_reply();
+ check_update_params();
+ check_update_op();
+ check_update_ops();
+ check_update_records();
+ check_llog_update_record();
+
printf("}\n\n");
return 0;