jewel: rgw: rgw_file: recursive lane lock can occur in LRU drain
Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
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;