]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: don't repeer an active pg just because the prior_set was affected
authorSage Weil <sage@newdream.net>
Fri, 7 Nov 2008 17:47:59 +0000 (09:47 -0800)
committerSage Weil <sage@newdream.net>
Fri, 7 Nov 2008 17:48:17 +0000 (09:48 -0800)
We only want to restart peering due to prior_set changes if it hasn't completed
yet.

src/osd/OSD.cc

index f06ebe3b9927787c4578f744d958d44f152245ed..e20abab0fe2a9ef9554bf69d2a66209c3b63e0ec 100644 (file)
@@ -1762,8 +1762,8 @@ void OSD::advance_map(ObjectStore::Transaction& t, interval_set<snapid_t>& 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;
     }