]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
PGMonitor: acting primary diff with cur_stat, should not set pg to stale. 7083/head
authorshawn <cxwshawn@gmail.com>
Tue, 5 Jan 2016 02:28:55 +0000 (21:28 -0500)
committershawn <cxwshawn@gmail.com>
Tue, 5 Jan 2016 02:28:57 +0000 (21:28 -0500)
Signed-off-by: Xiaowei Chen <chen.xiaowei@h3c.com>
src/mon/PGMonitor.cc

index dc0b049dfcf29567c412437bccc1a3e84edfc408..698ec25549d9881d575d44e996944f69719d7baa 100644 (file)
@@ -1275,8 +1275,10 @@ void PGMonitor::_mark_pg_stale(pg_t pgid, const pg_stat_t& cur_stat)
   } else {
     stat = &q->second;
   }
-  stat->state |= PG_STATE_STALE;
-  stat->last_unstale = ceph_clock_now(g_ceph_context);
+  if (stat->acting_primary == cur_stat.acting_primary) {
+    stat->state |= PG_STATE_STALE;  
+    stat->last_unstale = ceph_clock_now(g_ceph_context);
+  }
 }
 
 bool PGMonitor::check_down_pgs()