]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: OSDMonitor: check if pool is on unmanaged snaps mode on mk/rmsnap
authorJoao Eduardo Luis <jecluis@gmail.com>
Wed, 28 Aug 2013 14:51:01 +0000 (15:51 +0100)
committerJoao Eduardo Luis <jecluis@gmail.com>
Wed, 28 Aug 2013 23:48:17 +0000 (00:48 +0100)
Backport: dumpling
Fixes: #6047
Signed-off-by: Joao Eduardo Luis <jecluis@gmail.com>
src/mon/OSDMonitor.cc

index 32413c111d311d2c30f9776cbdec3712a9d647a6..9fcc0912550bfab1e17a37c357256aab9b971865 100644 (file)
@@ -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;