From: Sage Weil Date: Mon, 30 Dec 2013 19:10:46 +0000 (-0800) Subject: osd/ReplicatedPG: do not promote nonexistent clones X-Git-Tag: v0.77~22^2~22 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=934de77c661b96d7fdba16ff4bb1a09837ec3b51;p=ceph.git osd/ReplicatedPG: do not promote nonexistent clones Do not promote a clone for a snap that we know doesn't exist. If find_object_context() didn't give us a missing_oid, there is nothing to promote. Signed-off-by: Sage Weil --- diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index 780bfd6f844..8f5ccbb67e2 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -1366,6 +1366,11 @@ bool ReplicatedPG::maybe_handle_cache(OpRequestRef op, ObjectContextRef obc, return false; } + if (r == -ENOENT && missing_oid == hobject_t()) { + // we know this object is logically absent (e.g., an undefined clone) + return false; + } + switch(pool.info.cache_mode) { case pg_pool_t::CACHEMODE_NONE: return false;