summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoao Eduardo Luis <jecluis@gmail.com>2013-08-28 15:51:01 +0100
committerJoao Eduardo Luis <jecluis@gmail.com>2013-08-29 00:48:17 +0100
commitfab79543c54c2e446d3f76520d7906645c6b0075 (patch)
tree0cc9b4c4dd11ef7414d495ce1d8928d1c71fe3a9
parentec297ec6606af4e5c2d3287332929498a60226d1 (diff)
downloadceph-fab79543c54c2e446d3f76520d7906645c6b0075.tar.gz
mon: OSDMonitor: check if pool is on unmanaged snaps mode on mk/rmsnap
Backport: dumpling Fixes: #6047 Signed-off-by: Joao Eduardo Luis <jecluis@gmail.com>
-rw-r--r--src/mon/OSDMonitor.cc12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc
index 32413c111d3..9fcc0912550 100644
--- a/src/mon/OSDMonitor.cc
+++ b/src/mon/OSDMonitor.cc
@@ -3383,7 +3383,11 @@ done:
string snapname;
cmd_getval(g_ceph_context, cmdmap, "snap", snapname);
const pg_pool_t *p = osdmap.get_pg_pool(pool);
- if (p->snap_exists(snapname.c_str())) {
+ if (p->is_unmanaged_snaps_mode()) {
+ ss << "pool " << poolstr << " is in unmanaged snaps mode";
+ err = -EINVAL;
+ goto reply;
+ } else if (p->snap_exists(snapname.c_str())) {
ss << "pool " << poolstr << " snap " << snapname << " already exists";
err = 0;
goto reply;
@@ -3417,7 +3421,11 @@ done:
string snapname;
cmd_getval(g_ceph_context, cmdmap, "snap", snapname);
const pg_pool_t *p = osdmap.get_pg_pool(pool);
- if (!p->snap_exists(snapname.c_str())) {
+ if (p->is_unmanaged_snaps_mode()) {
+ ss << "pool " << poolstr << " is in unmanaged snaps mode";
+ err = -EINVAL;
+ goto reply;
+ } else if (!p->snap_exists(snapname.c_str())) {
ss << "pool " << poolstr << " snap " << snapname << " does not exist";
err = 0;
goto reply;