From: Joao Eduardo Luis Date: Wed, 28 Aug 2013 14:51:01 +0000 (+0100) Subject: mon: OSDMonitor: check if pool is on unmanaged snaps mode on mk/rmsnap X-Git-Tag: v0.71~179^2~4 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=fab79543c54c2e446d3f76520d7906645c6b0075;p=ceph.git mon: OSDMonitor: check if pool is on unmanaged snaps mode on mk/rmsnap Backport: dumpling Fixes: #6047 Signed-off-by: Joao Eduardo Luis --- diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index 32413c111d31..9fcc0912550b 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;