From: Jianpeng Ma Date: Thu, 26 May 2016 09:43:48 +0000 (+0800) Subject: osd/OSD: remove now unnecessary finished_lock. X-Git-Tag: v11.0.0~318^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=dffb471700166fbf24381967a201bdef20c42680;p=ceph.git osd/OSD: remove now unnecessary finished_lock. Now list finished protected by osd_lock. Signed-off-by: Jianpeng Ma --- diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index d79dd39caf78..33ea6a7c05e9 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 cda8109e9253..8466718cdde6 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();