]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd/OSD: fix another race(clear outstanding_pg_stats)
authorxie xingguo <xie.xingguo@zte.com.cn>
Wed, 5 Jul 2017 09:35:59 +0000 (17:35 +0800)
committerxie xingguo <xie.xingguo@zte.com.cn>
Fri, 7 Jul 2017 00:43:17 +0000 (08:43 +0800)
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
src/osd/OSD.cc
src/osd/OSD.h

index f2faccadaa020ae6c3dc5e894f5e3171def7d48c..efe593dd8949a249a30becfe667bcdd7c917b6aa 100644 (file)
@@ -7616,7 +7616,7 @@ void OSD::_committed_osd_maps(epoch_t first, epoch_t last, MOSDMap *m)
       dout(10) << __func__ << " require_osd_release reached luminous in "
               << newmap->get_epoch() << dendl;
       clear_pg_stat_queue();
-      outstanding_pg_stats.clear();
+      clear_outstanding_pg_stats();
     }
 
     osdmap = newmap;
index 03b56735ec5a7565b854b00ed098d3d11b2f88ea..090888f31373fe2c3af3d3b50044ba3719ce6228 100644 (file)
@@ -2113,6 +2113,10 @@ protected:
     }
     pg_stat_queue_lock.Unlock();
   }
+  void clear_outstanding_pg_stats(){
+    Mutex::Locker l(pg_stat_queue_lock);
+    outstanding_pg_stats.clear();
+  }
 
   ceph_tid_t get_tid() {
     return service.get_tid();