From: xie xingguo Date: Wed, 5 Jul 2017 09:35:59 +0000 (+0800) Subject: osd/OSD: fix another race(clear outstanding_pg_stats) X-Git-Tag: v12.1.1~101^2~4 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=74e5ac96f737f676d7b51defe9ae288827b7ab8c;p=ceph.git osd/OSD: fix another race(clear outstanding_pg_stats) Signed-off-by: xie xingguo --- diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index f2faccadaa02..efe593dd8949 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -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; diff --git a/src/osd/OSD.h b/src/osd/OSD.h index 03b56735ec5a..090888f31373 100644 --- a/src/osd/OSD.h +++ b/src/osd/OSD.h @@ -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();