From: David Zafman Date: Wed, 12 Nov 2014 23:22:04 +0000 (-0800) Subject: ceph_objectstore_tool: Fixes to make import work again X-Git-Tag: v0.90~100 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=5ce09198bf475e5c3a2df26232fa04ba9912b103;p=ceph.git ceph_objectstore_tool: Fixes to make import work again The is_pg() call is now true even for pgs pending removal, fix broken finish_remove_pgs() by removing is_pg() check. Need to add create_collection() to the initial transaction on import Fixes: #10090 Signed-off-by: David Zafman Reviewed-by: Sage Weil --- diff --git a/src/tools/ceph_objectstore_tool.cc b/src/tools/ceph_objectstore_tool.cc index 02126d6d3b5b..dd2c37d8ab2f 100644 --- a/src/tools/ceph_objectstore_tool.cc +++ b/src/tools/ceph_objectstore_tool.cc @@ -509,7 +509,6 @@ int finish_remove_pgs(ObjectStore *store) it != ls.end(); ++it) { spg_t pgid; - snapid_t snap; if (it->is_temp(pgid)) { cout << "finish_remove_pgs " << *it << " clearing temp" << std::endl; @@ -517,10 +516,6 @@ int finish_remove_pgs(ObjectStore *store) continue; } - if (it->is_pg(pgid, snap)) { - continue; - } - uint64_t seq; coll_t coll(pgid); char val; @@ -1384,6 +1379,7 @@ int do_import(ObjectStore *store, OSDSuperblock& sb) bufferlist one; one.append('1'); ObjectStore::Transaction *t = new ObjectStore::Transaction; + t->create_collection(coll); t->collection_setattr(coll, "remove", one); store->apply_transaction(*t); delete t;