struct ldlm_resource *res;
struct ldlm_glimpse_work *work;
struct ldlm_glimpse_work *tmp;
- struct list_head gl_list = LIST_HEAD_INIT(gl_list);
+ LIST_HEAD(gl_list);
struct list_head *pos;
int i;
int rc;
LASSERT(fsdb->fsdb_mdt_count > 0);
- rc = mgc_logname2resid(fsdb->fsdb_name, &res_id, CONFIG_T_BARRIER);
+ rc = mgc_logname2resid(fsdb->fsdb_name, &res_id, MGS_CFG_T_BARRIER);
if (rc)
RETURN(rc);
- res = ldlm_resource_get(mgs->mgs_obd->obd_namespace, NULL, &res_id,
+ res = ldlm_resource_get(mgs->mgs_obd->obd_namespace, &res_id,
LDLM_PLAIN, 0);
if (IS_ERR(res))
RETURN(PTR_ERR(res));
return expired > ktime_get_real_seconds();
}
+static inline bool mgs_barrier_tests_disabled(struct barrier_ctl *bc,
+ struct obd_export *exp,
+ struct fs_db *fsdb)
+{
+ __u64 flags = exp_connect_flags(exp);
+
+ if ((flags & OBD_CONNECT_MDS_MDS) && !(flags & OBD_CONNECT_BARRIER)) {
+ fsdb->fsdb_barrier_disabled = 1;
+ LCONSOLE_WARN("%s: Barrier incompatible connection %s\n",
+ bc->bc_name,
+ obd_uuid2str(&exp->exp_client_uuid));
+ return true;
+ }
+ return false;
+}
+
/**
* Create the barrier for the given instance.
*
spin_lock(&mgs_obd->obd_dev_lock);
list_for_each_entry(exp, &mgs_obd->obd_exports,
exp_obd_chain) {
- __u64 flags = exp_connect_flags(exp);
- if (!!(flags & OBD_CONNECT_MDS_MDS) &&
- !(flags & OBD_CONNECT_BARRIER)) {
- fsdb->fsdb_barrier_disabled = 1;
+ if (mgs_barrier_tests_disabled(bc, exp, fsdb))
break;
- }
}
spin_unlock(&mgs_obd->obd_dev_lock);
}
rc = -EALREADY;
break;
}
- /* fallthrough */
+ fallthrough;
case BS_INIT:
case BS_THAWED:
case BS_EXPIRED:
spin_lock(&mgs_obd->obd_dev_lock);
list_for_each_entry(exp, &mgs_obd->obd_exports,
exp_obd_chain) {
- __u64 flags = exp_connect_flags(exp);
- if (!!(flags & OBD_CONNECT_MDS_MDS) &&
- !(flags & OBD_CONNECT_BARRIER)) {
- fsdb->fsdb_barrier_disabled = 1;
+ if (mgs_barrier_tests_disabled(bc, exp, fsdb))
break;
- }
}
spin_unlock(&mgs_obd->obd_dev_lock);
}
spin_lock(&mgs_obd->obd_dev_lock);
list_for_each_entry(exp, &mgs_obd->obd_exports,
exp_obd_chain) {
- __u64 flags = exp_connect_flags(exp);
- if (!!(flags & OBD_CONNECT_MDS_MDS) &&
- !(flags & OBD_CONNECT_BARRIER)) {
- b_fsdb->fsdb_barrier_disabled = 1;
+ if (mgs_barrier_tests_disabled(bc, exp, b_fsdb))
break;
- }
}
spin_unlock(&mgs_obd->obd_dev_lock);
}
rc = -EBUSY;
break;
}
- /* fallthrough */
+ fallthrough;
case BS_INIT:
case BS_THAWED:
case BS_EXPIRED: