Whamcloud - gitweb
LU-5319 ptlrpc: Add a tag field to ptlrpc messages
[fs/lustre-release.git] / lustre / utils / wirecheck.c
index b845d0c..488b31c 100644 (file)
@@ -27,7 +27,7 @@
  * 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, 2014, Intel Corporation.
  */
 /*
  * This file is part of Lustre, http://www.lustre.org/
@@ -37,9 +37,9 @@
 #include <stdio.h>
 #include <sys/types.h>
 #include <sys/wait.h>
-#include <liblustre.h>
-#include <lustre_lib.h>
+#include <libcfs/libcfs.h>
 #include <lustre/lustre_idl.h>
+#include <lustre/lustre_lfsck_user.h>
 #include <lustre_disk.h>
 
 #define BLANK_LINE()                                           \
@@ -354,7 +354,9 @@ check_ptlrpc_body(void)
        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);
@@ -367,7 +369,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);
@@ -376,7 +378,9 @@ check_ptlrpc_body(void)
        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);
@@ -455,6 +459,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);
@@ -522,6 +528,12 @@ check_obd_connect_data(void)
        CHECK_DEFINE_64X(OBD_CONNECT_LIGHTWEIGHT);
        CHECK_DEFINE_64X(OBD_CONNECT_SHORTIO);
        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_VALUE_X(OBD_CKSUM_CRC32);
        CHECK_VALUE_X(OBD_CKSUM_ADLER);
@@ -631,6 +643,8 @@ check_obdo(void)
        CHECK_CVALUE_X(OBD_FL_MMAP);
        CHECK_CVALUE_X(OBD_FL_RECOV_RESEND);
        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);
 }
 
@@ -672,7 +686,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);
@@ -684,6 +698,31 @@ check_lov_mds_md_v3(void)
 }
 
 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();
@@ -824,9 +863,9 @@ check_niobuf_remote(void)
 {
        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);
@@ -839,6 +878,9 @@ check_niobuf_remote(void)
        CHECK_DEFINE_X(OBD_BRW_SRVLOCK);
        CHECK_DEFINE_X(OBD_BRW_ASYNC);
        CHECK_DEFINE_X(OBD_BRW_MEMALLOC);
+       CHECK_DEFINE_X(OBD_BRW_OVER_USRQUOTA);
+       CHECK_DEFINE_X(OBD_BRW_OVER_GRPQUOTA);
+       CHECK_DEFINE_X(OBD_BRW_SOFT_SYNC);
 }
 
 static void
@@ -864,39 +906,39 @@ check_mdt_body(void)
 {
        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_max_cookiesize);
+       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);
@@ -1200,20 +1242,6 @@ check_lmv_desc(void)
 }
 
 static void
-check_lmv_stripe_md(void)
-{
-       BLANK_LINE();
-       CHECK_STRUCT(lmv_stripe_md);
-       CHECK_MEMBER(lmv_stripe_md, mea_magic);
-       CHECK_MEMBER(lmv_stripe_md, mea_count);
-       CHECK_MEMBER(lmv_stripe_md, mea_master);
-       CHECK_MEMBER(lmv_stripe_md, mea_padding);
-       CHECK_CVALUE(LOV_MAXPOOLNAME);
-       CHECK_MEMBER(lmv_stripe_md, mea_pool_name[LOV_MAXPOOLNAME]);
-       CHECK_MEMBER(lmv_stripe_md, mea_ids[0]);
-}
-
-static void
 check_lov_desc(void)
 {
        BLANK_LINE();
@@ -1505,7 +1533,7 @@ check_llog_setattr64_rec(void)
        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);
 }
 
@@ -1539,20 +1567,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
@@ -1571,7 +1599,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
@@ -1658,6 +1686,20 @@ check_llogd_body(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_MAX_CTXTS);
 }
 
 static void
@@ -1756,23 +1798,43 @@ 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
@@ -1951,8 +2013,7 @@ static void check_layout_intent(void)
        CHECK_VALUE(LAYOUT_INTENT_RESTORE);
 }
 
-static void
-check_hsm_state_set(void)
+static void check_hsm_state_set(void)
 {
        BLANK_LINE();
        CHECK_STRUCT(hsm_state_set);
@@ -1962,8 +2023,7 @@ check_hsm_state_set(void)
        CHECK_MEMBER(hsm_state_set, hss_clearmask);
 }
 
-static void
-check_hsm_current_action(void)
+static void check_hsm_current_action(void)
 {
        BLANK_LINE();
        CHECK_STRUCT(hsm_current_action);
@@ -1972,8 +2032,7 @@ check_hsm_current_action(void)
        CHECK_MEMBER(hsm_current_action, hca_location);
 }
 
-static void
-check_hsm_request(void)
+static void check_hsm_request(void)
 {
        BLANK_LINE();
        CHECK_STRUCT(hsm_request);
@@ -1986,8 +2045,7 @@ check_hsm_request(void)
        CHECK_VALUE_X(HSM_GHOST_COPY);
 }
 
-static void
-check_hsm_user_request(void)
+static void check_hsm_user_request(void)
 {
        BLANK_LINE();
        CHECK_STRUCT(hsm_user_request);
@@ -1995,33 +2053,129 @@ check_hsm_user_request(void)
        CHECK_MEMBER(hsm_user_request, hur_user_item);
 }
 
-static void check_update_buf(void)
+static void check_hsm_user_import(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(hsm_user_import);
+       CHECK_MEMBER(hsm_user_import, hui_size);
+       CHECK_MEMBER(hsm_user_import, hui_uid);
+       CHECK_MEMBER(hsm_user_import, hui_gid);
+       CHECK_MEMBER(hsm_user_import, hui_mode);
+       CHECK_MEMBER(hsm_user_import, hui_atime);
+       CHECK_MEMBER(hsm_user_import, hui_atime_ns);
+       CHECK_MEMBER(hsm_user_import, hui_mtime);
+       CHECK_MEMBER(hsm_user_import, hui_mtime_ns);
+       CHECK_MEMBER(hsm_user_import, hui_archive_id);
 }
 
-static void check_update_reply(void)
+static void check_object_update_param(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(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_update(void)
+static void check_object_update(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(object_update);
+       CHECK_MEMBER(object_update, ou_type);
+       CHECK_MEMBER(object_update, ou_params_count);
+       CHECK_MEMBER(object_update, ou_master_index);
+       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(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_lfsck_request(void)
+{
+       BLANK_LINE();
+       CHECK_STRUCT(lfsck_request);
+       CHECK_MEMBER(lfsck_request, lr_event);
+       CHECK_MEMBER(lfsck_request, lr_index);
+       CHECK_MEMBER(lfsck_request, lr_flags);
+       CHECK_MEMBER(lfsck_request, lr_valid);
+       CHECK_MEMBER(lfsck_request, lr_speed);
+       CHECK_MEMBER(lfsck_request, lr_version);
+       CHECK_MEMBER(lfsck_request, lr_active);
+       CHECK_MEMBER(lfsck_request, lr_param);
+       CHECK_MEMBER(lfsck_request, lr_async_windows);
+       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_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)
+{
+       BLANK_LINE();
+       CHECK_STRUCT(lfsck_reply);
+       CHECK_MEMBER(lfsck_reply, lr_status);
+       CHECK_MEMBER(lfsck_reply, lr_padding_1);
+       CHECK_MEMBER(lfsck_reply, lr_padding_2);
 }
 
 static void system_string(char *cmdline, char *str, int len)
@@ -2173,6 +2327,7 @@ main(int argc, char **argv)
        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);
@@ -2219,6 +2374,7 @@ main(int argc, char **argv)
        CHECK_VALUE_64X(MDS_ATTR_BLOCKS);
 
        CHECK_VALUE(FLD_QUERY);
+       CHECK_VALUE(FLD_READ);
        CHECK_VALUE(FLD_FIRST_OPC);
        CHECK_VALUE(FLD_LAST_OPC);
 
@@ -2226,6 +2382,11 @@ main(int argc, char **argv)
        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);
 
@@ -2260,8 +2421,8 @@ main(int argc, char **argv)
        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);
@@ -2301,18 +2462,18 @@ main(int argc, char **argv)
        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_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_som_attrs();
        check_hsm_attrs();
@@ -2328,6 +2489,7 @@ main(int argc, char **argv)
        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();
@@ -2346,7 +2508,6 @@ main(int argc, char **argv)
        check_mdt_rec_setxattr();
        check_mdt_rec_reint();
        check_lmv_desc();
-       check_lmv_stripe_md();
        check_lov_desc();
        check_ldlm_res_id();
        check_ldlm_extent();
@@ -2373,7 +2534,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();
@@ -2391,13 +2553,8 @@ main(int argc, char **argv)
        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();
@@ -2412,10 +2569,16 @@ main(int argc, char **argv)
        check_hsm_current_action();
        check_hsm_request();
        check_hsm_user_request();
+       check_hsm_user_import();
+
+       check_object_update_param();
+       check_object_update();
+       check_object_update_request();
+       check_object_update_result();
+       check_object_update_reply();
 
-       check_update_buf();
-       check_update_reply();
-       check_update();
+       check_lfsck_request();
+       check_lfsck_reply();
 
        printf("}\n\n");