]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd, tools: Always filter temp objects since not being exported
authorDavid Zafman <dzafman@redhat.com>
Tue, 7 Jul 2015 01:14:06 +0000 (18:14 -0700)
committerDavid Zafman <dzafman@redhat.com>
Thu, 25 Feb 2016 20:50:23 +0000 (12:50 -0800)
Can't use object_locator_to_pg() directly with a temp object
because the pool is negative.

Signed-off-by: David Zafman <dzafman@redhat.com>
(cherry picked from commit 557c6530a515cffacbaec439cabff8a079edbf5b)

src/osd/osd_types.cc
src/tools/ceph_objectstore_tool.cc

index 29f4fc4cc53a13032c402d6209004240f4abaed9..292fc94df05ec431eaa5564d237cf128055fd145 100644 (file)
@@ -3127,6 +3127,12 @@ void pg_log_t::filter_log(spg_t import_pgid, const OSDMap &curmap,
   for (list<pg_log_entry_t>::const_iterator i = in.log.begin();
        i != in.log.end(); ++i) {
 
+    // Reject pg log entries for temporary objects
+    if (i->soid.is_temp()) {
+      reject.log.push_back(*i);
+      continue;
+    }
+
     if (i->soid.nspace != hit_set_namespace) {
       object_t oid = i->soid.oid;
       object_locator_t loc(i->soid);
index 1fcfe16ec8c95578bfe5fe44ffe3d66fa8e226e7..28843c46f6fdbdea413ec0bbb678211655301d39 100644 (file)
@@ -1928,6 +1928,12 @@ void filter_divergent_priors(spg_t import_pgid, const OSDMap &curmap,
   for (divergent_priors_t::const_iterator i = in.begin();
        i != in.end(); ++i) {
 
+    // Reject divergent priors for temporary objects
+    if (i->second.is_temp()) {
+      reject.insert(*i);
+      continue;
+    }
+
     if (i->second.nspace != hit_set_namespace) {
       object_t oid = i->second.oid;
       object_locator_t loc(i->second);