]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
ceph_objectstore_tool: Fixes to make import work again
authorDavid Zafman <dzafman@redhat.com>
Wed, 12 Nov 2014 23:22:04 +0000 (15:22 -0800)
committerSage Weil <sage@redhat.com>
Thu, 13 Nov 2014 00:00:14 +0000 (16:00 -0800)
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 <dzafman@redhat.com>
Reviewed-by: Sage Weil <sage@redhat.com>
src/tools/ceph_objectstore_tool.cc

index 02126d6d3b5b14fd967444daad4ffdd8a2b7c041..dd2c37d8ab2f4d6fe2b34954cbe1c5b160430d11 100644 (file)
@@ -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;