diff options
author | Joao Eduardo Luis <jecluis@gmail.com> | 2013-08-28 15:51:01 +0100 |
---|---|---|
committer | Joao Eduardo Luis <jecluis@gmail.com> | 2013-08-29 00:48:17 +0100 |
commit | fab79543c54c2e446d3f76520d7906645c6b0075 (patch) | |
tree | 0cc9b4c4dd11ef7414d495ce1d8928d1c71fe3a9 | |
parent | ec297ec6606af4e5c2d3287332929498a60226d1 (diff) | |
download | ceph-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.cc | 12 |
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; |