diff options
author | Joao Eduardo Luis <jecluis@gmail.com> | 2013-08-28 15:51:01 +0100 |
---|---|---|
committer | Sage Weil <sage@inktank.com> | 2013-09-23 14:16:37 -0700 |
commit | 298811f7a15541b9ec1015c416ad2aa075be5691 (patch) | |
tree | 977e43bb3d6ceeee8ccde86ba58ab6a66485681d | |
parent | a992664435db9dde3745eb7f354cce3fc5400a47 (diff) | |
download | ceph-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.cc | 12 |
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; |