-/* -*- 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.
/*
* 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/
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)
{
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
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);
CHECK_MEMBER(obd_connect_data, ocd_index);
CHECK_MEMBER(obd_connect_data, ocd_brw_size);
CHECK_MEMBER(obd_connect_data, ocd_ibits_known);
- CHECK_MEMBER(obd_connect_data, ocd_nllu);
- CHECK_MEMBER(obd_connect_data, ocd_nllg);
+ CHECK_MEMBER(obd_connect_data, ocd_blocksize);
+ CHECK_MEMBER(obd_connect_data, ocd_inodespace);
+ CHECK_MEMBER(obd_connect_data, ocd_grant_extent);
+ CHECK_MEMBER(obd_connect_data, ocd_unused);
CHECK_MEMBER(obd_connect_data, ocd_transno);
CHECK_MEMBER(obd_connect_data, ocd_group);
CHECK_MEMBER(obd_connect_data, ocd_cksum_types);
CHECK_DEFINE_64X(OBD_CONNECT_64BITHASH);
CHECK_DEFINE_64X(OBD_CONNECT_MAXBYTES);
CHECK_DEFINE_64X(OBD_CONNECT_IMP_RECOV);
+ CHECK_DEFINE_64X(OBD_CONNECT_JOBSTATS);
+ 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);
CHECK_MEMBER(obdo, o_lcookie);
CHECK_MEMBER(obdo, o_uid_h);
CHECK_MEMBER(obdo, o_gid_h);
- CHECK_MEMBER(obdo, o_padding_3);
+ CHECK_MEMBER(obdo, o_data_version);
CHECK_MEMBER(obdo, o_padding_4);
CHECK_MEMBER(obdo, o_padding_5);
CHECK_MEMBER(obdo, o_padding_6);
CHECK_DEFINE_64X(OBD_MD_FLRMTLGETFACL);
CHECK_DEFINE_64X(OBD_MD_FLRMTRSETFACL);
CHECK_DEFINE_64X(OBD_MD_FLRMTRGETFACL);
+ CHECK_DEFINE_64X(OBD_MD_FLDATAVERSION);
CHECK_CVALUE_X(OBD_FL_INLINEDATA);
CHECK_CVALUE_X(OBD_FL_OBDMDEXISTS);
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);
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]);
}
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();
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);
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();