#include <stdlib.h>
#include <sys/types.h>
#include <sys/wait.h>
-#include <lustre/lustre_idl.h>
-#include <lustre/lustre_lfsck_user.h>
-#include <linux/lustre_disk.h>
+#include <linux/lustre/lustre_idl.h>
+#include <linux/lustre/lustre_lfsck_user.h>
+#include <linux/lustre/lustre_disk.h>
#define BLANK_LINE() \
do { \
CHECK_VALUE(MSGHDR_AT_SUPPORT);
CHECK_VALUE(MSGHDR_CKSUM_INCOMPAT18);
- CHECK_VALUE_X(MSG_OP_FLAG_MASK);
- CHECK_VALUE(MSG_OP_FLAG_SHIFT);
- CHECK_VALUE_X(MSG_GEN_FLAG_MASK);
-
- CHECK_VALUE_X(MSG_LAST_REPLAY);
CHECK_VALUE_X(MSG_RESENT);
CHECK_VALUE_X(MSG_REPLAY);
- CHECK_VALUE_X(MSG_DELAY_REPLAY);
- CHECK_VALUE_X(MSG_VERSION_REPLAY);
CHECK_VALUE_X(MSG_REQ_REPLAY_DONE);
CHECK_VALUE_X(MSG_LOCK_REPLAY_DONE);
CHECK_VALUE_X(MSG_CONNECT_REPLAYABLE);
CHECK_VALUE_X(MSG_CONNECT_LIBCLIENT);
CHECK_VALUE_X(MSG_CONNECT_INITIAL);
- CHECK_VALUE_X(MSG_CONNECT_ASYNC);
CHECK_VALUE_X(MSG_CONNECT_NEXT_VER);
CHECK_VALUE_X(MSG_CONNECT_TRANSNO);
}
CHECK_DEFINE_64X(OBD_CONNECT_REQPORTAL);
CHECK_DEFINE_64X(OBD_CONNECT_ACL);
CHECK_DEFINE_64X(OBD_CONNECT_XATTR);
- CHECK_DEFINE_64X(OBD_CONNECT_CROW);
+ CHECK_DEFINE_64X(OBD_CONNECT_LARGE_ACL);
CHECK_DEFINE_64X(OBD_CONNECT_TRUNCLOCK);
CHECK_DEFINE_64X(OBD_CONNECT_TRANSNO);
CHECK_DEFINE_64X(OBD_CONNECT_IBITS);
CHECK_DEFINE_64X(OBD_CONNECT_MULTIMODRPCS);
CHECK_DEFINE_64X(OBD_CONNECT_DIR_STRIPE);
CHECK_DEFINE_64X(OBD_CONNECT_SUBTREE);
- CHECK_DEFINE_64X(OBD_CONNECT_LOCK_AHEAD);
+ CHECK_DEFINE_64X(OBD_CONNECT_LOCKAHEAD_OLD);
CHECK_DEFINE_64X(OBD_CONNECT_BULK_MBITS);
CHECK_DEFINE_64X(OBD_CONNECT_OBDOPACK);
CHECK_DEFINE_64X(OBD_CONNECT_FLAGS2);
CHECK_DEFINE_64X(OBD_CONNECT2_FILE_SECCTX);
+ CHECK_DEFINE_64X(OBD_CONNECT2_LOCKAHEAD);
CHECK_VALUE_X(OBD_CKSUM_CRC32);
CHECK_VALUE_X(OBD_CKSUM_ADLER);
CHECK_MEMBER(obdo, o_parent_ver);
CHECK_MEMBER(obdo, o_handle);
CHECK_MEMBER(obdo, o_layout);
- CHECK_MEMBER(obdo, o_padding_3);
+ CHECK_MEMBER(obdo, o_layout_version);
CHECK_MEMBER(obdo, o_uid_h);
CHECK_MEMBER(obdo, o_gid_h);
CHECK_MEMBER(obdo, o_data_version);
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);
}
static void
CHECK_VALUE_X(LOV_PATTERN_RAID0);
CHECK_VALUE_X(LOV_PATTERN_RAID1);
- CHECK_VALUE_X(LOV_PATTERN_FIRST);
+ CHECK_VALUE_X(LOV_PATTERN_MDT);
CHECK_VALUE_X(LOV_PATTERN_CMOBD);
}
CHECK_MEMBER(lov_comp_md_entry_v1, lcme_padding);
CHECK_VALUE_X(LCME_FL_INIT);
+ CHECK_VALUE_X(LCME_FL_NEG);
}
static void
CHECK_MEMBER(lov_comp_md_v1, lcm_layout_gen);
CHECK_MEMBER(lov_comp_md_v1, lcm_flags);
CHECK_MEMBER(lov_comp_md_v1, lcm_entry_count);
+ CHECK_MEMBER(lov_comp_md_v1, lcm_mirror_count);
CHECK_MEMBER(lov_comp_md_v1, lcm_padding1);
CHECK_MEMBER(lov_comp_md_v1, lcm_padding2);
CHECK_MEMBER(lov_comp_md_v1, lcm_entries[0]);
CHECK_CDEFINE(LOV_MAGIC_COMP_V1);
+
+ CHECK_VALUE(LCM_FL_NOT_FLR);
+ CHECK_VALUE(LCM_FL_RDONLY);
+ CHECK_VALUE(LCM_FL_WRITE_PENDING);
+ CHECK_VALUE(LCM_FL_SYNC_PENDING);
}
static void
CHECK_MEMBER(mdt_body, mbo_uid_h);
CHECK_MEMBER(mdt_body, mbo_gid_h);
CHECK_MEMBER(mdt_body, mbo_projid);
- CHECK_MEMBER(mdt_body, mbo_padding_6);
- CHECK_MEMBER(mdt_body, mbo_padding_7);
+ CHECK_MEMBER(mdt_body, mbo_dom_size);
+ CHECK_MEMBER(mdt_body, mbo_dom_blocks);
CHECK_MEMBER(mdt_body, mbo_padding_8);
CHECK_MEMBER(mdt_body, mbo_padding_9);
CHECK_MEMBER(mdt_body, mbo_padding_10);
CHECK_MEMBER(mdt_rec_setattr, sa_attr_flags);
CHECK_MEMBER(mdt_rec_setattr, sa_mode);
CHECK_MEMBER(mdt_rec_setattr, sa_bias);
- CHECK_MEMBER(mdt_rec_setattr, sa_padding_3);
+ CHECK_MEMBER(mdt_rec_setattr, sa_projid);
CHECK_MEMBER(mdt_rec_setattr, sa_padding_4);
CHECK_MEMBER(mdt_rec_setattr, sa_padding_5);
}
}
static void
+check_mdt_rec_resync(void)
+{
+ BLANK_LINE();
+ CHECK_STRUCT(mdt_rec_resync);
+ CHECK_MEMBER(mdt_rec_resync, rs_opcode);
+ CHECK_MEMBER(mdt_rec_resync, rs_cap);
+ CHECK_MEMBER(mdt_rec_resync, rs_fsuid);
+ CHECK_MEMBER(mdt_rec_resync, rs_fsuid_h);
+ CHECK_MEMBER(mdt_rec_resync, rs_fsgid);
+ CHECK_MEMBER(mdt_rec_resync, rs_fsgid_h);
+ CHECK_MEMBER(mdt_rec_resync, rs_suppgid1);
+ CHECK_MEMBER(mdt_rec_resync, rs_suppgid1_h);
+ CHECK_MEMBER(mdt_rec_resync, rs_suppgid2);
+ CHECK_MEMBER(mdt_rec_resync, rs_suppgid2_h);
+ CHECK_MEMBER(mdt_rec_resync, rs_fid);
+ CHECK_MEMBER(mdt_rec_resync, rs_padding0);
+ CHECK_MEMBER(mdt_rec_resync, rs_padding1);
+ CHECK_MEMBER(mdt_rec_resync, rs_padding2);
+ CHECK_MEMBER(mdt_rec_resync, rs_padding3);
+ CHECK_MEMBER(mdt_rec_resync, rs_padding4);
+ CHECK_MEMBER(mdt_rec_resync, rs_bias);
+ CHECK_MEMBER(mdt_rec_resync, rs_padding5);
+ CHECK_MEMBER(mdt_rec_resync, rs_padding6);
+ CHECK_MEMBER(mdt_rec_resync, rs_padding7);
+ CHECK_MEMBER(mdt_rec_resync, rs_padding8);
+ CHECK_MEMBER(mdt_rec_resync, rs_padding9);
+}
+
+static void
check_mdt_rec_reint(void)
{
BLANK_LINE();
BLANK_LINE();
CHECK_STRUCT(ldlm_inodebits);
CHECK_MEMBER(ldlm_inodebits, bits);
+ CHECK_MEMBER(ldlm_inodebits, try_bits);
}
static void
CHECK_STRUCT(llog_changelog_user_rec);
CHECK_MEMBER(llog_changelog_user_rec, cur_hdr);
CHECK_MEMBER(llog_changelog_user_rec, cur_id);
- CHECK_MEMBER(llog_changelog_user_rec, cur_padding);
+ CHECK_MEMBER(llog_changelog_user_rec, cur_time);
CHECK_MEMBER(llog_changelog_user_rec, cur_endrec);
CHECK_MEMBER(llog_changelog_user_rec, cur_tail);
}
printf("#ifdef CONFIG_FS_POSIX_ACL\n");
CHECK_STRUCT_TYPEDEF(posix_acl_xattr_header);
CHECK_MEMBER_TYPEDEF(posix_acl_xattr_header, a_version);
+ printf("#ifndef HAVE_STRUCT_POSIX_ACL_XATTR\n");
CHECK_MEMBER_TYPEDEF(posix_acl_xattr_header, a_entries);
+ printf("#endif /* HAVE_STRUCT_POSIX_ACL_XATTR */\n");
printf("#endif /* CONFIG_FS_POSIX_ACL */\n");
}
static void check_layout_intent(void)
{
- BLANK_LINE();
- CHECK_STRUCT(layout_intent);
- CHECK_MEMBER(layout_intent, li_opc);
- CHECK_MEMBER(layout_intent, li_flags);
- CHECK_MEMBER(layout_intent, li_start);
- CHECK_MEMBER(layout_intent, li_end);
+ BLANK_LINE();
+ CHECK_STRUCT(layout_intent);
+ CHECK_MEMBER(layout_intent, li_opc);
+ CHECK_MEMBER(layout_intent, li_flags);
+ CHECK_MEMBER(layout_intent, li_extent);
CHECK_VALUE(LAYOUT_INTENT_ACCESS);
CHECK_VALUE(LAYOUT_INTENT_READ);
CHECK_MEMBER(llog_update_record, lur_update_rec);
}
-static void system_string(char *cmdline, char *str, int len)
-{
- int fds[2];
- int rc;
- pid_t pid;
-
- rc = pipe(fds);
- if (rc != 0)
- abort();
-
- pid = fork();
- if (pid == 0) {
- /* child */
- int fd = fileno(stdout);
-
- rc = dup2(fds[1], fd);
- if (rc != fd)
- abort();
-
- exit(system(cmdline));
- /* notreached */
- } else if ((int)pid < 0) {
- abort();
- } else {
- FILE *f = fdopen(fds[0], "r");
-
- if (f == NULL)
- abort();
-
- close(fds[1]);
-
- if (fgets(str, len, f) == NULL)
- abort();
-
- if (waitpid(pid, &rc, 0) != pid)
- abort();
-
- if (!WIFEXITED(rc) || WEXITSTATUS(rc) != 0)
- abort();
-
- if (strnlen(str, len) == len)
- str[len - 1] = 0;
-
- if (str[strlen(str) - 1] == '\n')
- str[strlen(str) - 1] = 0;
-
- fclose(f);
- }
-}
-
int
main(int argc, char **argv)
{
- char unameinfo[80];
- char gccinfo[80];
-
- system_string("uname -a", unameinfo, sizeof(unameinfo));
- system_string(CC " -v 2>&1 | tail -1", gccinfo, sizeof(gccinfo));
+ BLANK_LINE();
printf ("void lustre_assert_wire_constants(void)\n"
"{\n"
- " /* Wire protocol assertions generated by 'wirecheck'\n"
- " * (make -C lustre/utils newwiretest)\n"
- " * running on %s\n"
- " * with %s */\n"
- "\n", unameinfo, gccinfo);
+ " /* Wire protocol assertions generated by 'wirecheck'\n"
+ " * (make -C lustre/utils newwiretest)\n"
+ " */\n");
- BLANK_LINE ();
+ BLANK_LINE();
COMMENT("Constants...");
CHECK_VALUE(PTL_RPC_MSG_REQUEST);
check_mdt_rec_unlink();
check_mdt_rec_rename();
check_mdt_rec_setxattr();
+ check_mdt_rec_resync();
check_mdt_rec_reint();
check_lmv_desc();
check_lov_desc();