From: Sage Weil Date: Fri, 7 Nov 2008 17:47:59 +0000 (-0800) Subject: osd: don't repeer an active pg just because the prior_set was affected X-Git-Tag: v0.5~54 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=7e1c35c75719dc82e80a68605be3f6cb5f466f19;p=ceph.git osd: don't repeer an active pg just because the prior_set was affected We only want to restart peering due to prior_set changes if it hasn't completed yet. --- diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index f06ebe3b99277..e20abab0fe2a9 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -1762,8 +1762,8 @@ void OSD::advance_map(ObjectStore::Transaction& t, interval_set& remov pg->lock(); // no change? - if (tacting == pg->acting && !pg->prior_set_affected(osdmap)) { - dout(15) << *pg << " unchanged with " << tacting << dendl; + if (tacting == pg->acting && (pg->is_active() || !pg->prior_set_affected(osdmap))) { + dout(15) << *pg << " unchanged|active with " << tacting << dendl; pg->unlock(); continue; }