From: Nathan Cutler Date: Tue, 6 Feb 2018 14:10:34 +0000 (+0100) Subject: Merge pull request #17149 from smithfarm/wip-20399-jewel X-Git-Tag: v10.2.11~146 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=eb1ad7dc90aa0890619cd86fa965cc6f098ae97b;p=ceph.git Merge pull request #17149 from smithfarm/wip-20399-jewel jewel: rgw: rgw_file: recursive lane lock can occur in LRU drain Reviewed-by: Yehuda Sadeh --- eb1ad7dc90aa0890619cd86fa965cc6f098ae97b diff --cc src/common/cohort_lru.h index 0121eda9dbe22,21cc4e1b33937..f1a679047fd21 --- a/src/common/cohort_lru.h +++ b/src/common/cohort_lru.h @@@ -131,15 -145,8 +145,9 @@@ namespace cohort for (int ix = 0; ix < n_lanes; ++ix, lane_ix = next_evict_lane()) { Lane& lane = qlane[lane_ix]; + lane.lock.lock(); /* if object at LRU has refcnt==1, it may be reclaimable */ Object* o = &(lane.q.back()); - #if 0 /* XXX save for refactor */ - std::cout << __func__ - << " " << o - << " refcnt: " << o->lru_refcnt - << std::endl; - #endif if (can_reclaim(o)) { ++(o->lru_refcnt); o->lru_flags |= FLAG_EVICTING;