} u;
};
+enum {
+ CONFIG_T_CONFIG = 0,
+ CONFIG_T_SPTLRPC = 1,
+ CONFIG_T_RECOVER = 2,
+ CONFIG_T_PARAMS = 3,
+ CONFIG_T_NODEMAP = 4,
+ CONFIG_T_BARRIER = 5,
+ CONFIG_T_MAX
+};
+
struct mgs_config_body {
char mcb_name[MTI_NAME_MAXLEN]; /* logname */
__u64 mcb_offset; /* next index of config log to request */
int class_config_parse_llog(const struct lu_env *env, struct llog_ctxt *ctxt,
char *name, struct config_llog_instance *cfg);
-#define CONFIG_T_CONFIG 0x01
-#define CONFIG_T_SPTLRPC 0x02
-#define CONFIG_T_RECOVER 0x04
-#define CONFIG_T_PARAMS 0x08
-#define CONFIG_T_NODEMAP 0x10
-#define CONFIG_T_BARRIER 0x20
+#define CONFIG_SUB_SPTLRPC 0x01
+#define CONFIG_SUB_RECOVER 0x02
+#define CONFIG_SUB_PARAMS 0x04
+#define CONFIG_SUB_NODEMAP 0x08
+#define CONFIG_SUB_BARRIER 0x10
/* Sub clds should be attached to the config_llog_data when processing
* config log for client or server target. */
-#define CONFIG_SUB_CLIENT (CONFIG_T_SPTLRPC | CONFIG_T_RECOVER | \
- CONFIG_T_PARAMS)
-#define CONFIG_SUB_SERVER (CONFIG_SUB_CLIENT | CONFIG_T_NODEMAP)
+#define CONFIG_SUB_CLIENT (CONFIG_SUB_SPTLRPC | CONFIG_SUB_RECOVER | \
+ CONFIG_SUB_PARAMS)
+#define CONFIG_SUB_SERVER (CONFIG_SUB_CLIENT | CONFIG_SUB_NODEMAP | \
+ CONFIG_SUB_BARRIER)
#define PARAMS_FILENAME "params"
#define BARRIER_FILENAME "barrier"
memcpy(seclogname, logname, ptr - logname);
strcpy(seclogname + (ptr - logname), "-sptlrpc");
- if (cfg->cfg_sub_clds & CONFIG_T_SPTLRPC) {
+ if (cfg->cfg_sub_clds & CONFIG_SUB_SPTLRPC) {
sptlrpc_cld = config_log_find_or_add(obd, seclogname, NULL,
CONFIG_T_SPTLRPC, cfg);
if (IS_ERR(sptlrpc_cld)) {
}
}
- if (!IS_MGS(lsi) && cfg->cfg_sub_clds & CONFIG_T_NODEMAP) {
+ if (!IS_MGS(lsi) && cfg->cfg_sub_clds & CONFIG_SUB_NODEMAP) {
nodemap_cld = config_log_find_or_add(obd, LUSTRE_NODEMAP_NAME,
NULL, CONFIG_T_NODEMAP,
cfg);
}
}
- if (cfg->cfg_sub_clds & CONFIG_T_PARAMS) {
+ if (cfg->cfg_sub_clds & CONFIG_SUB_PARAMS) {
params_cld = config_log_find_or_add(obd, PARAMS_FILENAME, sb,
CONFIG_T_PARAMS, cfg);
if (IS_ERR(params_cld)) {
}
}
- if (IS_MDT(s2lsi(sb))) {
+ if (IS_MDT(s2lsi(sb)) && cfg->cfg_sub_clds & CONFIG_SUB_BARRIER) {
snprintf(seclogname + (ptr - logname), sizeof(seclogname) - 1,
"-%s", BARRIER_FILENAME);
barrier_cld = config_log_find_or_add(obd, seclogname, sb,
LASSERT(lsi->lsi_lmd);
if (!(lsi->lsi_lmd->lmd_flags & LMD_FLG_NOIR) &&
- cfg->cfg_sub_clds & CONFIG_T_RECOVER) {
+ cfg->cfg_sub_clds & CONFIG_SUB_RECOVER) {
struct config_llog_data *recover_cld;
ptr = strrchr(seclogname, '-');
LASSERTF((int)sizeof(((struct mgs_target_info *)0)->mti_params) == 4096, "found %lld\n",
(long long)(int)sizeof(((struct mgs_target_info *)0)->mti_params));
+ /* Checks for struct mgs_nidtbl_entry */
+ LASSERTF((int)sizeof(struct mgs_nidtbl_entry) == 24, "found %lld\n",
+ (long long)(int)sizeof(struct mgs_nidtbl_entry));
+ LASSERTF((int)offsetof(struct mgs_nidtbl_entry, mne_version) == 0, "found %lld\n",
+ (long long)(int)offsetof(struct mgs_nidtbl_entry, mne_version));
+ LASSERTF((int)sizeof(((struct mgs_nidtbl_entry *)0)->mne_version) == 8, "found %lld\n",
+ (long long)(int)sizeof(((struct mgs_nidtbl_entry *)0)->mne_version));
+ LASSERTF((int)offsetof(struct mgs_nidtbl_entry, mne_instance) == 8, "found %lld\n",
+ (long long)(int)offsetof(struct mgs_nidtbl_entry, mne_instance));
+ LASSERTF((int)sizeof(((struct mgs_nidtbl_entry *)0)->mne_instance) == 4, "found %lld\n",
+ (long long)(int)sizeof(((struct mgs_nidtbl_entry *)0)->mne_instance));
+ LASSERTF((int)offsetof(struct mgs_nidtbl_entry, mne_index) == 12, "found %lld\n",
+ (long long)(int)offsetof(struct mgs_nidtbl_entry, mne_index));
+ LASSERTF((int)sizeof(((struct mgs_nidtbl_entry *)0)->mne_index) == 4, "found %lld\n",
+ (long long)(int)sizeof(((struct mgs_nidtbl_entry *)0)->mne_index));
+ LASSERTF((int)offsetof(struct mgs_nidtbl_entry, mne_length) == 16, "found %lld\n",
+ (long long)(int)offsetof(struct mgs_nidtbl_entry, mne_length));
+ LASSERTF((int)sizeof(((struct mgs_nidtbl_entry *)0)->mne_length) == 4, "found %lld\n",
+ (long long)(int)sizeof(((struct mgs_nidtbl_entry *)0)->mne_length));
+ LASSERTF((int)offsetof(struct mgs_nidtbl_entry, mne_type) == 20, "found %lld\n",
+ (long long)(int)offsetof(struct mgs_nidtbl_entry, mne_type));
+ LASSERTF((int)sizeof(((struct mgs_nidtbl_entry *)0)->mne_type) == 1, "found %lld\n",
+ (long long)(int)sizeof(((struct mgs_nidtbl_entry *)0)->mne_type));
+ LASSERTF((int)offsetof(struct mgs_nidtbl_entry, mne_nid_type) == 21, "found %lld\n",
+ (long long)(int)offsetof(struct mgs_nidtbl_entry, mne_nid_type));
+ LASSERTF((int)sizeof(((struct mgs_nidtbl_entry *)0)->mne_nid_type) == 1, "found %lld\n",
+ (long long)(int)sizeof(((struct mgs_nidtbl_entry *)0)->mne_nid_type));
+ LASSERTF((int)offsetof(struct mgs_nidtbl_entry, mne_nid_size) == 22, "found %lld\n",
+ (long long)(int)offsetof(struct mgs_nidtbl_entry, mne_nid_size));
+ LASSERTF((int)sizeof(((struct mgs_nidtbl_entry *)0)->mne_nid_size) == 1, "found %lld\n",
+ (long long)(int)sizeof(((struct mgs_nidtbl_entry *)0)->mne_nid_size));
+ LASSERTF((int)offsetof(struct mgs_nidtbl_entry, mne_nid_count) == 23, "found %lld\n",
+ (long long)(int)offsetof(struct mgs_nidtbl_entry, mne_nid_count));
+ LASSERTF((int)sizeof(((struct mgs_nidtbl_entry *)0)->mne_nid_count) == 1, "found %lld\n",
+ (long long)(int)sizeof(((struct mgs_nidtbl_entry *)0)->mne_nid_count));
+ LASSERTF((int)offsetof(struct mgs_nidtbl_entry, u.nids[0]) == 24, "found %lld\n",
+ (long long)(int)offsetof(struct mgs_nidtbl_entry, u.nids[0]));
+ LASSERTF((int)sizeof(((struct mgs_nidtbl_entry *)0)->u.nids[0]) == 8, "found %lld\n",
+ (long long)(int)sizeof(((struct mgs_nidtbl_entry *)0)->u.nids[0]));
+
+ /* Checks for struct mgs_config_body */
+ LASSERTF((int)sizeof(struct mgs_config_body) == 80, "found %lld\n",
+ (long long)(int)sizeof(struct mgs_config_body));
+ LASSERTF((int)offsetof(struct mgs_config_body, mcb_name) == 0, "found %lld\n",
+ (long long)(int)offsetof(struct mgs_config_body, mcb_name));
+ LASSERTF((int)sizeof(((struct mgs_config_body *)0)->mcb_name) == 64, "found %lld\n",
+ (long long)(int)sizeof(((struct mgs_config_body *)0)->mcb_name));
+ LASSERTF((int)offsetof(struct mgs_config_body, mcb_offset) == 64, "found %lld\n",
+ (long long)(int)offsetof(struct mgs_config_body, mcb_offset));
+ LASSERTF((int)sizeof(((struct mgs_config_body *)0)->mcb_offset) == 8, "found %lld\n",
+ (long long)(int)sizeof(((struct mgs_config_body *)0)->mcb_offset));
+ LASSERTF((int)offsetof(struct mgs_config_body, mcb_type) == 72, "found %lld\n",
+ (long long)(int)offsetof(struct mgs_config_body, mcb_type));
+ LASSERTF((int)sizeof(((struct mgs_config_body *)0)->mcb_type) == 2, "found %lld\n",
+ (long long)(int)sizeof(((struct mgs_config_body *)0)->mcb_type));
+ LASSERTF((int)offsetof(struct mgs_config_body, mcb_nm_cur_pass) == 74, "found %lld\n",
+ (long long)(int)offsetof(struct mgs_config_body, mcb_nm_cur_pass));
+ LASSERTF((int)sizeof(((struct mgs_config_body *)0)->mcb_nm_cur_pass) == 1, "found %lld\n",
+ (long long)(int)sizeof(((struct mgs_config_body *)0)->mcb_nm_cur_pass));
+ LASSERTF((int)offsetof(struct mgs_config_body, mcb_bits) == 75, "found %lld\n",
+ (long long)(int)offsetof(struct mgs_config_body, mcb_bits));
+ LASSERTF((int)sizeof(((struct mgs_config_body *)0)->mcb_bits) == 1, "found %lld\n",
+ (long long)(int)sizeof(((struct mgs_config_body *)0)->mcb_bits));
+ LASSERTF((int)offsetof(struct mgs_config_body, mcb_units) == 76, "found %lld\n",
+ (long long)(int)offsetof(struct mgs_config_body, mcb_units));
+ LASSERTF((int)sizeof(((struct mgs_config_body *)0)->mcb_units) == 4, "found %lld\n",
+ (long long)(int)sizeof(((struct mgs_config_body *)0)->mcb_units));
+ CLASSERT(CONFIG_T_CONFIG == 0);
+ CLASSERT(CONFIG_T_SPTLRPC == 1);
+ CLASSERT(CONFIG_T_RECOVER == 2);
+ CLASSERT(CONFIG_T_PARAMS == 3);
+ CLASSERT(CONFIG_T_NODEMAP == 4);
+ CLASSERT(CONFIG_T_BARRIER == 5);
+
+ /* Checks for struct mgs_config_res */
+ LASSERTF((int)sizeof(struct mgs_config_res) == 16, "found %lld\n",
+ (long long)(int)sizeof(struct mgs_config_res));
+ LASSERTF((int)offsetof(struct mgs_config_res, mcr_offset) == 0, "found %lld\n",
+ (long long)(int)offsetof(struct mgs_config_res, mcr_offset));
+ LASSERTF((int)sizeof(((struct mgs_config_res *)0)->mcr_offset) == 8, "found %lld\n",
+ (long long)(int)sizeof(((struct mgs_config_res *)0)->mcr_offset));
+ LASSERTF((int)offsetof(struct mgs_config_res, mcr_size) == 8, "found %lld\n",
+ (long long)(int)offsetof(struct mgs_config_res, mcr_size));
+ LASSERTF((int)sizeof(((struct mgs_config_res *)0)->mcr_size) == 8, "found %lld\n",
+ (long long)(int)sizeof(((struct mgs_config_res *)0)->mcr_size));
+
/* Checks for struct lustre_capa */
LASSERTF((int)sizeof(struct lustre_capa) == 120, "found %lld\n",
(long long)(int)sizeof(struct lustre_capa));
}
static void
+check_mgs_nidtbl_entry(void)
+{
+ BLANK_LINE();
+ CHECK_STRUCT(mgs_nidtbl_entry);
+ CHECK_MEMBER(mgs_nidtbl_entry, mne_version);
+ CHECK_MEMBER(mgs_nidtbl_entry, mne_instance);
+ CHECK_MEMBER(mgs_nidtbl_entry, mne_index);
+ CHECK_MEMBER(mgs_nidtbl_entry, mne_length);
+ CHECK_MEMBER(mgs_nidtbl_entry, mne_type);
+ CHECK_MEMBER(mgs_nidtbl_entry, mne_nid_type);
+ CHECK_MEMBER(mgs_nidtbl_entry, mne_nid_size);
+ CHECK_MEMBER(mgs_nidtbl_entry, mne_nid_count);
+ CHECK_MEMBER(mgs_nidtbl_entry, u.nids[0]);
+}
+
+static void
+check_mgs_config_body(void)
+{
+ BLANK_LINE();
+ CHECK_STRUCT(mgs_config_body);
+ CHECK_MEMBER(mgs_config_body, mcb_name);
+ CHECK_MEMBER(mgs_config_body, mcb_offset);
+ CHECK_MEMBER(mgs_config_body, mcb_type);
+ CHECK_MEMBER(mgs_config_body, mcb_nm_cur_pass);
+ CHECK_MEMBER(mgs_config_body, mcb_bits);
+ CHECK_MEMBER(mgs_config_body, mcb_units);
+
+ CHECK_CVALUE(CONFIG_T_CONFIG);
+ CHECK_CVALUE(CONFIG_T_SPTLRPC);
+ CHECK_CVALUE(CONFIG_T_RECOVER);
+ CHECK_CVALUE(CONFIG_T_PARAMS);
+ CHECK_CVALUE(CONFIG_T_NODEMAP);
+ CHECK_CVALUE(CONFIG_T_BARRIER);
+}
+
+static void
+check_mgs_config_res(void)
+{
+ BLANK_LINE();
+ CHECK_STRUCT(mgs_config_res);
+ CHECK_MEMBER(mgs_config_res, mcr_offset);
+ CHECK_MEMBER(mgs_config_res, mcr_size);
+}
+
+static void
check_lustre_capa(void)
{
BLANK_LINE();
check_ll_fiemap_info_key();
check_quota_body();
check_mgs_target_info();
+ check_mgs_nidtbl_entry();
+ check_mgs_config_body();
+ check_mgs_config_res();
check_lustre_capa();
check_lustre_capa_key();
check_getinfo_fid2path();
LASSERTF((int)sizeof(((struct mgs_target_info *)0)->mti_params) == 4096, "found %lld\n",
(long long)(int)sizeof(((struct mgs_target_info *)0)->mti_params));
+ /* Checks for struct mgs_nidtbl_entry */
+ LASSERTF((int)sizeof(struct mgs_nidtbl_entry) == 24, "found %lld\n",
+ (long long)(int)sizeof(struct mgs_nidtbl_entry));
+ LASSERTF((int)offsetof(struct mgs_nidtbl_entry, mne_version) == 0, "found %lld\n",
+ (long long)(int)offsetof(struct mgs_nidtbl_entry, mne_version));
+ LASSERTF((int)sizeof(((struct mgs_nidtbl_entry *)0)->mne_version) == 8, "found %lld\n",
+ (long long)(int)sizeof(((struct mgs_nidtbl_entry *)0)->mne_version));
+ LASSERTF((int)offsetof(struct mgs_nidtbl_entry, mne_instance) == 8, "found %lld\n",
+ (long long)(int)offsetof(struct mgs_nidtbl_entry, mne_instance));
+ LASSERTF((int)sizeof(((struct mgs_nidtbl_entry *)0)->mne_instance) == 4, "found %lld\n",
+ (long long)(int)sizeof(((struct mgs_nidtbl_entry *)0)->mne_instance));
+ LASSERTF((int)offsetof(struct mgs_nidtbl_entry, mne_index) == 12, "found %lld\n",
+ (long long)(int)offsetof(struct mgs_nidtbl_entry, mne_index));
+ LASSERTF((int)sizeof(((struct mgs_nidtbl_entry *)0)->mne_index) == 4, "found %lld\n",
+ (long long)(int)sizeof(((struct mgs_nidtbl_entry *)0)->mne_index));
+ LASSERTF((int)offsetof(struct mgs_nidtbl_entry, mne_length) == 16, "found %lld\n",
+ (long long)(int)offsetof(struct mgs_nidtbl_entry, mne_length));
+ LASSERTF((int)sizeof(((struct mgs_nidtbl_entry *)0)->mne_length) == 4, "found %lld\n",
+ (long long)(int)sizeof(((struct mgs_nidtbl_entry *)0)->mne_length));
+ LASSERTF((int)offsetof(struct mgs_nidtbl_entry, mne_type) == 20, "found %lld\n",
+ (long long)(int)offsetof(struct mgs_nidtbl_entry, mne_type));
+ LASSERTF((int)sizeof(((struct mgs_nidtbl_entry *)0)->mne_type) == 1, "found %lld\n",
+ (long long)(int)sizeof(((struct mgs_nidtbl_entry *)0)->mne_type));
+ LASSERTF((int)offsetof(struct mgs_nidtbl_entry, mne_nid_type) == 21, "found %lld\n",
+ (long long)(int)offsetof(struct mgs_nidtbl_entry, mne_nid_type));
+ LASSERTF((int)sizeof(((struct mgs_nidtbl_entry *)0)->mne_nid_type) == 1, "found %lld\n",
+ (long long)(int)sizeof(((struct mgs_nidtbl_entry *)0)->mne_nid_type));
+ LASSERTF((int)offsetof(struct mgs_nidtbl_entry, mne_nid_size) == 22, "found %lld\n",
+ (long long)(int)offsetof(struct mgs_nidtbl_entry, mne_nid_size));
+ LASSERTF((int)sizeof(((struct mgs_nidtbl_entry *)0)->mne_nid_size) == 1, "found %lld\n",
+ (long long)(int)sizeof(((struct mgs_nidtbl_entry *)0)->mne_nid_size));
+ LASSERTF((int)offsetof(struct mgs_nidtbl_entry, mne_nid_count) == 23, "found %lld\n",
+ (long long)(int)offsetof(struct mgs_nidtbl_entry, mne_nid_count));
+ LASSERTF((int)sizeof(((struct mgs_nidtbl_entry *)0)->mne_nid_count) == 1, "found %lld\n",
+ (long long)(int)sizeof(((struct mgs_nidtbl_entry *)0)->mne_nid_count));
+ LASSERTF((int)offsetof(struct mgs_nidtbl_entry, u.nids[0]) == 24, "found %lld\n",
+ (long long)(int)offsetof(struct mgs_nidtbl_entry, u.nids[0]));
+ LASSERTF((int)sizeof(((struct mgs_nidtbl_entry *)0)->u.nids[0]) == 8, "found %lld\n",
+ (long long)(int)sizeof(((struct mgs_nidtbl_entry *)0)->u.nids[0]));
+
+ /* Checks for struct mgs_config_body */
+ LASSERTF((int)sizeof(struct mgs_config_body) == 80, "found %lld\n",
+ (long long)(int)sizeof(struct mgs_config_body));
+ LASSERTF((int)offsetof(struct mgs_config_body, mcb_name) == 0, "found %lld\n",
+ (long long)(int)offsetof(struct mgs_config_body, mcb_name));
+ LASSERTF((int)sizeof(((struct mgs_config_body *)0)->mcb_name) == 64, "found %lld\n",
+ (long long)(int)sizeof(((struct mgs_config_body *)0)->mcb_name));
+ LASSERTF((int)offsetof(struct mgs_config_body, mcb_offset) == 64, "found %lld\n",
+ (long long)(int)offsetof(struct mgs_config_body, mcb_offset));
+ LASSERTF((int)sizeof(((struct mgs_config_body *)0)->mcb_offset) == 8, "found %lld\n",
+ (long long)(int)sizeof(((struct mgs_config_body *)0)->mcb_offset));
+ LASSERTF((int)offsetof(struct mgs_config_body, mcb_type) == 72, "found %lld\n",
+ (long long)(int)offsetof(struct mgs_config_body, mcb_type));
+ LASSERTF((int)sizeof(((struct mgs_config_body *)0)->mcb_type) == 2, "found %lld\n",
+ (long long)(int)sizeof(((struct mgs_config_body *)0)->mcb_type));
+ LASSERTF((int)offsetof(struct mgs_config_body, mcb_nm_cur_pass) == 74, "found %lld\n",
+ (long long)(int)offsetof(struct mgs_config_body, mcb_nm_cur_pass));
+ LASSERTF((int)sizeof(((struct mgs_config_body *)0)->mcb_nm_cur_pass) == 1, "found %lld\n",
+ (long long)(int)sizeof(((struct mgs_config_body *)0)->mcb_nm_cur_pass));
+ LASSERTF((int)offsetof(struct mgs_config_body, mcb_bits) == 75, "found %lld\n",
+ (long long)(int)offsetof(struct mgs_config_body, mcb_bits));
+ LASSERTF((int)sizeof(((struct mgs_config_body *)0)->mcb_bits) == 1, "found %lld\n",
+ (long long)(int)sizeof(((struct mgs_config_body *)0)->mcb_bits));
+ LASSERTF((int)offsetof(struct mgs_config_body, mcb_units) == 76, "found %lld\n",
+ (long long)(int)offsetof(struct mgs_config_body, mcb_units));
+ LASSERTF((int)sizeof(((struct mgs_config_body *)0)->mcb_units) == 4, "found %lld\n",
+ (long long)(int)sizeof(((struct mgs_config_body *)0)->mcb_units));
+ CLASSERT(CONFIG_T_CONFIG == 0);
+ CLASSERT(CONFIG_T_SPTLRPC == 1);
+ CLASSERT(CONFIG_T_RECOVER == 2);
+ CLASSERT(CONFIG_T_PARAMS == 3);
+ CLASSERT(CONFIG_T_NODEMAP == 4);
+ CLASSERT(CONFIG_T_BARRIER == 5);
+
+ /* Checks for struct mgs_config_res */
+ LASSERTF((int)sizeof(struct mgs_config_res) == 16, "found %lld\n",
+ (long long)(int)sizeof(struct mgs_config_res));
+ LASSERTF((int)offsetof(struct mgs_config_res, mcr_offset) == 0, "found %lld\n",
+ (long long)(int)offsetof(struct mgs_config_res, mcr_offset));
+ LASSERTF((int)sizeof(((struct mgs_config_res *)0)->mcr_offset) == 8, "found %lld\n",
+ (long long)(int)sizeof(((struct mgs_config_res *)0)->mcr_offset));
+ LASSERTF((int)offsetof(struct mgs_config_res, mcr_size) == 8, "found %lld\n",
+ (long long)(int)offsetof(struct mgs_config_res, mcr_size));
+ LASSERTF((int)sizeof(((struct mgs_config_res *)0)->mcr_size) == 8, "found %lld\n",
+ (long long)(int)sizeof(((struct mgs_config_res *)0)->mcr_size));
+
/* Checks for struct lustre_capa */
LASSERTF((int)sizeof(struct lustre_capa) == 120, "found %lld\n",
(long long)(int)sizeof(struct lustre_capa));