Whamcloud - gitweb
LU-1492 utils: cleanup wirecheck for ptlrpc_body
[fs/lustre-release.git] / lustre / utils / wirecheck.c
index 72b511f..feb424a 100644 (file)
@@ -1,6 +1,4 @@
-/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
- * vim:expandtab:shiftwidth=8:tabstop=8:
- *
+/*
  * GPL HEADER START
  *
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -28,9 +26,8 @@
 /*
  * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
  * Use is subject to license terms.
- */
-/*
- * Copyright (c) 2011 Whamcloud, Inc.
+ *
+ * Copyright (c) 2011, 2012, Whamcloud, Inc.
  */
 /*
  * This file is part of Lustre, http://www.lustre.org/
@@ -166,6 +163,21 @@ do {                                                            \
                 CHECK_VALUE((int)sizeof(s));                    \
 } while(0)
 
+#define CHECK_VALUE_SAME(v1, v2)                                \
+do {                                                            \
+       printf("\tLASSERTF("#v1" == "#v2", "                    \
+              "\"%%d != %%d\\n\",\n"                           \
+              "\t\t "#v1", "#v2");\n");                        \
+} while (0)
+
+#define CHECK_MEMBER_SAME(s1, s2, m)                            \
+do {                                                            \
+       CHECK_VALUE_SAME((int)offsetof(struct s1, m),           \
+                        (int)offsetof(struct s2, m));          \
+       CHECK_VALUE_SAME((int)sizeof(((struct s1 *)0)->m),      \
+                        (int)sizeof(((struct s2 *)0)->m));     \
+} while (0)
+
 static void
 check_lu_seq_range(void)
 {
@@ -223,8 +235,15 @@ check_ost_id(void)
         CHECK_VALUE_64X(FID_SEQ_START);
         CHECK_VALUE_64X(FID_SEQ_LOCAL_FILE);
         CHECK_VALUE_64X(FID_SEQ_DOT_LUSTRE);
+        CHECK_VALUE_64X(FID_SEQ_SPECIAL);
+        CHECK_VALUE_64X(FID_SEQ_QUOTA);
+        CHECK_VALUE_64X(FID_SEQ_QUOTA_GLB);
         CHECK_VALUE_64X(FID_SEQ_NORMAL);
         CHECK_VALUE_64X(FID_SEQ_LOV_DEFAULT);
+
+        CHECK_VALUE_X(FID_OID_SPECIAL_BFL);
+        CHECK_VALUE_X(FID_OID_DOT_LUSTRE);
+        CHECK_VALUE_X(FID_OID_DOT_LUSTRE_OBF);
 }
 
 static void
@@ -316,11 +335,32 @@ check_ptlrpc_body(void)
         CHECK_MEMBER(ptlrpc_body, pb_conn_cnt);
         CHECK_MEMBER(ptlrpc_body, pb_timeout);
         CHECK_MEMBER(ptlrpc_body, pb_service_time);
-        CHECK_MEMBER(ptlrpc_body, pb_slv);
         CHECK_MEMBER(ptlrpc_body, pb_limit);
+       CHECK_MEMBER(ptlrpc_body, pb_slv);
         CHECK_CVALUE(PTLRPC_NUM_VERSIONS);
-        CHECK_MEMBER(ptlrpc_body, pb_pre_versions[PTLRPC_NUM_VERSIONS]);
-        CHECK_MEMBER(ptlrpc_body, pb_padding[4]);
+       CHECK_MEMBER(ptlrpc_body, pb_pre_versions);
+       CHECK_MEMBER(ptlrpc_body, pb_padding);
+       CHECK_CVALUE(JOBSTATS_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_type);
+       CHECK_MEMBER_SAME(ptlrpc_body_v3, ptlrpc_body_v2, pb_version);
+       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_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_op_flags);
+       CHECK_MEMBER_SAME(ptlrpc_body_v3, ptlrpc_body_v2, pb_conn_cnt);
+       CHECK_MEMBER_SAME(ptlrpc_body_v3, ptlrpc_body_v2, pb_timeout);
+       CHECK_MEMBER_SAME(ptlrpc_body_v3, ptlrpc_body_v2, pb_service_time);
+       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_VALUE(MSG_PTLRPC_BODY_OFF);
         CHECK_VALUE(REQ_REC_OFF);
@@ -446,8 +486,9 @@ check_obd_connect_data(void)
         CHECK_DEFINE_64X(OBD_CONNECT_MAXBYTES);
         CHECK_DEFINE_64X(OBD_CONNECT_IMP_RECOV);
         CHECK_DEFINE_64X(OBD_CONNECT_JOBSTATS);
-        CHECK_DEFINE_64X(OBD_CONNECT_GRANT_PARAM);
+        CHECK_DEFINE_64X(OBD_CONNECT_UMASK);
         CHECK_DEFINE_64X(OBD_CONNECT_EINPROGRESS);
+        CHECK_DEFINE_64X(OBD_CONNECT_GRANT_PARAM);
 
         CHECK_VALUE_X(OBD_CKSUM_CRC32);
         CHECK_VALUE_X(OBD_CKSUM_ADLER);
@@ -583,6 +624,7 @@ check_lov_mds_md_v1(void)
         CHECK_MEMBER(lov_mds_md_v1, lmm_object_seq);
         CHECK_MEMBER(lov_mds_md_v1, lmm_stripe_size);
         CHECK_MEMBER(lov_mds_md_v1, lmm_stripe_count);
+       CHECK_MEMBER(lov_mds_md_v1, lmm_layout_gen);
         CHECK_MEMBER(lov_mds_md_v1, lmm_objects[0]);
 
         CHECK_CDEFINE(LOV_MAGIC_V1);
@@ -599,6 +641,7 @@ check_lov_mds_md_v3(void)
         CHECK_MEMBER(lov_mds_md_v3, lmm_object_seq);
         CHECK_MEMBER(lov_mds_md_v3, lmm_stripe_size);
         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_objects[0]);
@@ -1390,6 +1433,23 @@ check_changelog_rec(void)
 }
 
 static void
+check_changelog_rec_ext(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);
+}
+
+static void
 check_changelog_setinfo(void)
 {
         BLANK_LINE();
@@ -1970,6 +2030,11 @@ main(int argc, char **argv)
         CHECK_CVALUE(LDLM_IBITS);
         CHECK_CVALUE(LDLM_MAX_TYPE);
 
+        CHECK_CVALUE(LUSTRE_RES_ID_SEQ_OFF);
+        CHECK_CVALUE(LUSTRE_RES_ID_VER_OID_OFF);
+        /* CHECK_CVALUE(LUSTRE_RES_ID_WAS_VER_OFF); packed with OID */
+        CHECK_CVALUE(LUSTRE_RES_ID_HSH_OFF);
+
         CHECK_VALUE(OBD_PING);
         CHECK_VALUE(OBD_LOG_CANCEL);
         CHECK_VALUE(OBD_QC_CALLBACK);
@@ -2052,6 +2117,7 @@ main(int argc, char **argv)
         check_llog_setattr64_rec();
         check_llog_size_change_rec();
         check_changelog_rec();
+       check_changelog_rec_ext();
         check_changelog_setinfo();
         check_llog_changelog_rec();
         check_llog_changelog_user_rec();