if (mdsmap->get_inline_data_enabled() && !oldmap.get_inline_data_enabled())
dout(0) << "WARNING: inline_data support has been deprecated and will be removed in a future release" << dendl;
+ if (scrubstack->is_scrubbing()) {
+ if (mdsmap->get_max_mds() > 1) {
+ auto c = new C_MDSInternalNoop;
+ scrubstack->scrub_abort(c);
+ }
+ }
mdcache->handle_mdsmap(*mdsmap);
}
cmd_getval(g_ceph_context, cmdmap, "scrubops", scrubop_vec);
cmd_getval(g_ceph_context, cmdmap, "path", path);
cmd_getval(g_ceph_context, cmdmap, "tag", tag);
+ /* if there are more than one mds active and a recursive scrub is requested,
+ * dishonor the request
+ */
+ bool is_recursive = std::find(scrubop_vec.begin(), scrubop_vec.end(), string("recursive")) != scrubop_vec.end();
+ if (mdsmap->get_max_mds() > 1 && is_recursive) {
+ ss << "There is more than one MDS active. Hence a recursive scrub "
+ "request cannot be started.";
+ r = -EINVAL;
+ goto out;
+ }
finisher->queue(
new LambdaContext(
[this, on_finish, f, path, tag, scrubop_vec](int r) {