From 4c61bf3dcfdb4c4a9a0d167c2b2aebef4d5a1da8 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Sun, 14 May 2017 21:17:12 -0500 Subject: [PATCH] mon/OSDMonitor: require force flag is swap-bucket alg types differ Signed-off-by: Sage Weil --- src/mon/OSDMonitor.cc | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index 4c61f98b29f6f..d0a2b9df7ecf6 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -6711,6 +6711,14 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, err = -EPERM; goto reply; } + if (newcrush.get_bucket_alg(sid) != newcrush.get_bucket_alg(did) && + force != "--yes-i-really-mean-it") { + ss << "source bucket alg " << crush_alg_name(newcrush.get_bucket_alg(sid)) << " != " + << "dest bucket alg " << crush_alg_name(newcrush.get_bucket_alg(did)) + << "; pass --yes-i-really-mean-it to proceed anyway"; + err = -EPERM; + goto reply; + } int r = newcrush.swap_bucket(g_ceph_context, sid, did); if (r < 0) { ss << "failed to swap bucket contents: " << cpp_strerror(r); -- 2.39.5