From 74e5ac96f737f676d7b51defe9ae288827b7ab8c Mon Sep 17 00:00:00 2001 From: xie xingguo Date: Wed, 5 Jul 2017 17:35:59 +0800 Subject: [PATCH] osd/OSD: fix another race(clear outstanding_pg_stats) Signed-off-by: xie xingguo --- src/osd/OSD.cc | 2 +- src/osd/OSD.h | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index f2faccadaa0..efe593dd894 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 03b56735ec5..090888f3137 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(); -- 2.39.5