From dffb471700166fbf24381967a201bdef20c42680 Mon Sep 17 00:00:00 2001 From: Jianpeng Ma Date: Thu, 26 May 2016 17:43:48 +0800 Subject: [PATCH] osd/OSD: remove now unnecessary finished_lock. Now list finished protected by osd_lock. Signed-off-by: Jianpeng Ma --- src/osd/OSD.cc | 6 ------ src/osd/OSD.h | 4 +--- 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index d79dd39caf7..33ea6a7c05e 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -1669,7 +1669,6 @@ OSD::OSD(CephContext *cct_, ObjectStore *store_, hb_back_server_messenger(hb_back_serverm), heartbeat_thread(this), heartbeat_dispatcher(this), - finished_lock("OSD::finished_lock"), op_tracker(cct, cct->_conf->osd_enable_op_tracker, cct->_conf->osd_num_op_tracker_shard), test_ops_hook(NULL), @@ -2634,7 +2633,6 @@ int OSD::shutdown() // finish ops op_shardedwq.drain(); // should already be empty except for laggard PGs { - Mutex::Locker l(finished_lock); finished.clear(); // zap waiters (bleh, this is messy) } @@ -6070,15 +6068,11 @@ void OSD::do_waiters() assert(osd_lock.is_locked()); dout(10) << "do_waiters -- start" << dendl; - finished_lock.Lock(); while (!finished.empty()) { OpRequestRef next = finished.front(); finished.pop_front(); - finished_lock.Unlock(); dispatch_op(next); - finished_lock.Lock(); } - finished_lock.Unlock(); dout(10) << "do_waiters -- finish" << dendl; } diff --git a/src/osd/OSD.h b/src/osd/OSD.h index cda8109e925..8466718cdde 100644 --- a/src/osd/OSD.h +++ b/src/osd/OSD.h @@ -1714,12 +1714,10 @@ public: private: // -- waiters -- list finished; - Mutex finished_lock; void take_waiters(list& ls) { - finished_lock.Lock(); + assert(osd_lock.is_locked()); finished.splice(finished.end(), ls); - finished_lock.Unlock(); } void do_waiters(); -- 2.39.5