From: Samuel Just Date: Sat, 15 Mar 2014 01:00:05 +0000 (-0700) Subject: PG::build_might_have_unfound: check pg_whomai, not osd whoami X-Git-Tag: v0.78~15^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F1468%2Fhead;p=ceph.git PG::build_might_have_unfound: check pg_whomai, not osd whoami Otherwise, we might skip (2,0) when we are (2,1). Fixes: #7732 Signed-off-by: Samuel Just --- diff --git a/src/osd/PG.cc b/src/osd/PG.cc index 3d290ff93ba..75fa59cfe72 100644 --- a/src/osd/PG.cc +++ b/src/osd/PG.cc @@ -1360,11 +1360,9 @@ void PG::build_might_have_unfound() std::vector::const_iterator a = interval.acting.begin(); std::vector::const_iterator a_end = interval.acting.end(); for (; a != a_end; ++a, ++i) { - if (*a != CRUSH_ITEM_NONE && *a != osd->whoami) - might_have_unfound.insert( - pg_shard_t( - *a, - pool.info.ec_pool() ? i : ghobject_t::NO_SHARD)); + pg_shard_t shard(*a, pool.info.ec_pool() ? i : ghobject_t::NO_SHARD); + if (*a != CRUSH_ITEM_NONE && shard != pg_whoami) + might_have_unfound.insert(shard); } }