summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
98f107b)
snapshot_create fails when clients are connected that do not support
barrier requests.
Log some information to help the administrator track down the
connections blocking snapshot_create from succeeding.
Test-Parameters: fstype=zfs
Signed-off-by: Shaun Tancheff <shaun.tancheff@hpe.com>
Change-Id: Ia59ea3c4c1a885e2591464cd4f8f77a1071b4786
Reviewed-on: https://review.whamcloud.com/38593
Tested-by: jenkins <devops@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Emoly Liu <emoly@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
return expired > ktime_get_real_seconds();
}
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.
*
/**
* 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) {
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))
}
spin_unlock(&mgs_obd->obd_dev_lock);
}
}
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) {
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))
}
spin_unlock(&mgs_obd->obd_dev_lock);
}
}
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) {
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))
}
spin_unlock(&mgs_obd->obd_dev_lock);
}
}
spin_unlock(&mgs_obd->obd_dev_lock);
}