From: David Zafman Date: Wed, 19 Nov 2014 19:41:39 +0000 (-0800) Subject: ceph_objectstore_tool: Check that pool exists before allowing import X-Git-Tag: v0.80.10~69^2~10 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=22b7c2faee8cfad1b40cef019984f4a2d112b268;p=ceph.git ceph_objectstore_tool: Check that pool exists before allowing import Signed-off-by: David Zafman (cherry picked from commit f24f646d870703b7b79563cdbc20920248be6142) Conflicts: src/tools/ceph_objectstore_tool.cc --- diff --git a/src/tools/ceph_objectstore_tool.cc b/src/tools/ceph_objectstore_tool.cc index 3c90c3cb41f2..bc98b615c16d 100644 --- a/src/tools/ceph_objectstore_tool.cc +++ b/src/tools/ceph_objectstore_tool.cc @@ -1608,6 +1608,18 @@ int do_import(ObjectStore *store, OSDSuperblock& sb) return 1; } + // Don't import if pool no longer exists + OSDMap curmap; + ret = get_osdmap(store, sb.current_epoch, curmap); + if (ret) { + cerr << "Can't find local OSDMap" << std::endl; + return ret; + } + if (!curmap.have_pg_pool(pgid.pgid.m_pool)) { + cerr << "Pool " << pgid.pgid.m_pool << " no longer exists" << std::endl; + return 1; + } + log_oid = OSD::make_pg_log_oid(pgid); biginfo_oid = OSD::make_pg_biginfo_oid(pgid);