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(ptlrpc_body, pb_conn_cnt);
CHECK_MEMBER(ptlrpc_body, pb_padding_1);
CHECK_MEMBER(ptlrpc_body, pb_padding_2);
- CHECK_MEMBER(ptlrpc_body, pb_padding_3);
- CHECK_MEMBER(ptlrpc_body, pb_padding_4);
- CHECK_MEMBER(ptlrpc_body, pb_padding_5);
+ CHECK_MEMBER(ptlrpc_body, pb_slv);
+ CHECK_MEMBER(ptlrpc_body, pb_limit);
}
static void check_obd_connect_data(void)
CHECK_CDEFINE(OBD_CONNECT_ACL);
CHECK_CDEFINE(OBD_CONNECT_XATTR);
CHECK_CDEFINE(OBD_CONNECT_REAL);
+ CHECK_CDEFINE(OBD_CONNECT_CKSUM);
CHECK_CDEFINE(OBD_CONNECT_TRUNCLOCK);
CHECK_CDEFINE(OBD_CONNECT_IBITS);
CHECK_CDEFINE(OBD_CONNECT_JOIN);
CHECK_CDEFINE(OBD_CONNECT_SOM);
CHECK_CDEFINE(OBD_CONNECT_AT);
CHECK_CDEFINE(OBD_CONNECT_CANCELSET);
+ CHECK_CDEFINE(OBD_CONNECT_LRU_RESIZE);
}
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);
+ CHECK_CDEFINE(MDS_ATTR_BLOCKS);
}
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
system_string (char *cmdline, char *str, int len)
{
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_qunit_data_old();
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");