CHECK_VALUE((int)offsetof(struct s, m)); \
} while(0)
+#define CHECK_MEMBER_OFFSET_TYPEDEF(s,m) \
+do { \
+ CHECK_VALUE((int)offsetof(s, m)); \
+} while(0)
+
#define CHECK_MEMBER_SIZEOF(s,m) \
do { \
CHECK_VALUE((int)sizeof(((struct s *)0)->m)); \
} while(0)
+#define CHECK_MEMBER_SIZEOF_TYPEDEF(s,m) \
+do { \
+ CHECK_VALUE((int)sizeof(((s *)0)->m)); \
+} while(0)
+
#define CHECK_MEMBER(s,m) \
do { \
CHECK_MEMBER_OFFSET(s, m); \
CHECK_MEMBER_SIZEOF(s, m); \
} while(0)
+#define CHECK_MEMBER_TYPEDEF(s,m) \
+do { \
+ CHECK_MEMBER_OFFSET_TYPEDEF(s, m); \
+ CHECK_MEMBER_SIZEOF_TYPEDEF(s, m); \
+} while(0)
+
#define CHECK_STRUCT(s) \
do { \
COMMENT("Checks for struct "#s); \
CHECK_VALUE((int)sizeof(struct s)); \
} while(0)
+#define CHECK_STRUCT_TYPEDEF(s) \
+do { \
+ COMMENT("Checks for type "#s); \
+ CHECK_VALUE((int)sizeof(s)); \
+} while(0)
static void
check_lustre_handle(void)
CHECK_MEMBER(lustre_msg_v2, lm_magic);
CHECK_MEMBER(lustre_msg_v2, lm_repsize);
CHECK_MEMBER(lustre_msg_v2, lm_cksum);
- CHECK_MEMBER(lustre_msg_v2, lm_padding_1);
+ CHECK_MEMBER(lustre_msg_v2, lm_flags);
CHECK_MEMBER(lustre_msg_v2, lm_padding_2);
CHECK_MEMBER(lustre_msg_v2, lm_padding_3);
CHECK_MEMBER(lustre_msg_v2, lm_buflens[0]);
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_transno);
+ CHECK_MEMBER(obd_connect_data, ocd_group);
+ CHECK_MEMBER(obd_connect_data, ocd_cksum_types);
CHECK_MEMBER(obd_connect_data, padding1);
CHECK_MEMBER(obd_connect_data, padding2);
- CHECK_MEMBER(obd_connect_data, padding3);
- CHECK_MEMBER(obd_connect_data, padding4);
CHECK_CDEFINE(OBD_CONNECT_RDONLY);
CHECK_CDEFINE(OBD_CONNECT_INDEX);
CHECK_CDEFINE(OBD_CONNECT_RMT_CLIENT);
CHECK_CDEFINE(OBD_CONNECT_BRW_SIZE);
CHECK_CDEFINE(OBD_CONNECT_QUOTA64);
- CHECK_CDEFINE(OBD_CONNECT_FID_CAPA);
+ CHECK_CDEFINE(OBD_CONNECT_MDS_CAPA);
CHECK_CDEFINE(OBD_CONNECT_OSS_CAPA);
CHECK_CDEFINE(OBD_CONNECT_CANCELSET);
CHECK_CDEFINE(OBD_CONNECT_SOM);
CHECK_CDEFINE(OBD_CONNECT_AT);
CHECK_CDEFINE(OBD_CONNECT_LRU_RESIZE);
+ CHECK_CDEFINE(OBD_CONNECT_MDS_MDS);
+ CHECK_CDEFINE(OBD_CONNECT_REAL);
+ CHECK_CDEFINE(OBD_CONNECT_CKSUM);
}
static void
CHECK_CDEFINE(OBD_FL_NO_USRQUOTA);
CHECK_CDEFINE(OBD_FL_NO_GRPQUOTA);
CHECK_CDEFINE(OBD_FL_CREATE_CROW);
+ CHECK_CDEFINE(OBD_FL_TRUNCLOCK);
+ CHECK_CDEFINE(OBD_FL_CKSUM_CRC32);
+ CHECK_CDEFINE(OBD_FL_CKSUM_ADLER);
+ CHECK_CDEFINE(OBD_CKSUM_CRC32);
+ CHECK_CDEFINE(OBD_CKSUM_ADLER);
}
static void
CHECK_MEMBER(mds_rec_setattr, sa_uid);
CHECK_MEMBER(mds_rec_setattr, sa_gid);
CHECK_MEMBER(mds_rec_setattr, sa_attr_flags);
+ CHECK_CDEFINE(MDS_ATTR_MODE);
+ CHECK_CDEFINE(MDS_ATTR_UID);
+ CHECK_CDEFINE(MDS_ATTR_GID);
+ CHECK_CDEFINE(MDS_ATTR_SIZE);
+ CHECK_CDEFINE(MDS_ATTR_ATIME);
+ CHECK_CDEFINE(MDS_ATTR_MTIME);
+ CHECK_CDEFINE(MDS_ATTR_CTIME);
+ CHECK_CDEFINE(MDS_ATTR_ATIME_SET);
+ CHECK_CDEFINE(MDS_ATTR_MTIME_SET);
+ CHECK_CDEFINE(MDS_ATTR_FORCE);
+ CHECK_CDEFINE(MDS_ATTR_ATTR_FLAG);
+ CHECK_CDEFINE(MDS_ATTR_KILL_SUID);
+ CHECK_CDEFINE(MDS_ATTR_KILL_SGID);
+ CHECK_CDEFINE(MDS_ATTR_CTIME_SET);
+ CHECK_CDEFINE(MDS_ATTR_FROM_OPEN);
}
static void
CHECK_MEMBER(qunit_data, qd_id);
CHECK_MEMBER(qunit_data, qd_flags);
CHECK_MEMBER(qunit_data, qd_count);
+ CHECK_MEMBER(qunit_data, qd_qunit);
+ CHECK_MEMBER(qunit_data, padding );
+}
+
+static void
+check_qunit_data_old2(void)
+{
+ BLANK_LINE();
+ CHECK_STRUCT(qunit_data_old2);
+ CHECK_MEMBER(qunit_data_old2, qd_id);
+ CHECK_MEMBER(qunit_data_old2, qd_flags);
+ CHECK_MEMBER(qunit_data_old2, qd_count);
}
static void
CHECK_MEMBER(lustre_disk_data, ldd_params);
}
+#ifdef LIBLUSTRE_POSIX_ACL
+static void
+check_posix_acl_xattr_entry(void)
+{
+ BLANK_LINE();
+ 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);
+}
+
+static void
+check_posix_acl_xattr_header(void)
+{
+ BLANK_LINE();
+ 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);
+}
+#endif
+
+static void
+check_quota_adjust_qunit(void)
+{
+ BLANK_LINE();
+ CHECK_STRUCT(quota_adjust_qunit);
+ CHECK_MEMBER(quota_adjust_qunit, qaq_flags);
+ CHECK_MEMBER(quota_adjust_qunit, qaq_id);
+ CHECK_MEMBER(quota_adjust_qunit, qaq_bunit_sz);
+ CHECK_MEMBER(quota_adjust_qunit, qaq_iunit_sz);
+}
+
static void
system_string (char *cmdline, char *str, int len)
{
CHECK_DEFINE(LUSTRE_MSG_MAGIC_V1);
CHECK_DEFINE(LUSTRE_MSG_MAGIC_V2);
CHECK_DEFINE(PTLRPC_MSG_VERSION);
+ CHECK_VALUE(MSGHDR_AT_SUPPORT);
CHECK_VALUE(PTL_RPC_MSG_REQUEST);
CHECK_VALUE(PTL_RPC_MSG_ERR);
CHECK_VALUE(MSG_LAST_REPLAY);
CHECK_VALUE(MSG_RESENT);
CHECK_VALUE(MSG_REPLAY);
- CHECK_VALUE(MSG_AT_SUPPORT);
CHECK_VALUE(MSG_CONNECT_RECOVERING);
CHECK_VALUE(MSG_CONNECT_RECONNECT);
CHECK_VALUE(OST_SYNC);
CHECK_VALUE(OST_QUOTACHECK);
CHECK_VALUE(OST_QUOTACTL);
+ CHECK_VALUE(OST_QUOTA_ADJUST_QUNIT);
CHECK_VALUE(OST_LAST_OPC);
CHECK_DEFINE(OBD_OBJECT_EOF);
CHECK_VALUE(MGS_EXCEPTION);
CHECK_VALUE(MGS_TARGET_REG);
CHECK_VALUE(MGS_TARGET_DEL);
+ CHECK_VALUE(MGS_SET_INFO);
CHECK_VALUE(DISP_IT_EXECD);
CHECK_VALUE(DISP_LOOKUP_EXECD);
CHECK_VALUE(MGS_EXCEPTION);
CHECK_VALUE(MGS_TARGET_REG);
CHECK_VALUE(MGS_TARGET_DEL);
+ CHECK_VALUE(MGS_SET_INFO);
COMMENT("Sizes and Offsets");
BLANK_LINE();
check_llog_array_rec();
check_mds_extent_desc();
check_qunit_data();
+ check_qunit_data_old2();
check_qunit_data_old();
+ check_quota_adjust_qunit();
check_mgs_target_info();
check_lustre_disk_data();
+#ifdef LIBLUSTRE_POSIX_ACL
+ check_posix_acl_xattr_entry();
+ check_posix_acl_xattr_header();
+#endif
printf("}\n\n");