summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoao Eduardo Luis <jecluis@gmail.com>2013-08-28 15:51:01 +0100
committerSage Weil <sage@inktank.com>2013-09-23 14:16:37 -0700
commit298811f7a15541b9ec1015c416ad2aa075be5691 (patch)
tree977e43bb3d6ceeee8ccde86ba58ab6a66485681d
parenta992664435db9dde3745eb7f354cce3fc5400a47 (diff)
downloadceph-298811f7a15541b9ec1015c416ad2aa075be5691.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> (cherry picked from commit fab79543c54c2e446d3f76520d7906645c6b0075)
-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 07022aec73b..c3358f21627 100644
--- a/src/mon/OSDMonitor.cc
+++ b/src/mon/OSDMonitor.cc
@@ -3325,7 +3325,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;
@@ -3359,7 +3363,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;