Found by "Supriti Singh" <Supriti.Singh@suse.com>.
Fixes http://tracker.ceph.com/issues/21141
Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
(cherry picked from commit
3301596734adcbda1e8e76a742935efdeb7518fd)
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 */
return o;
} else {
// XXX can't make unreachable (means what?)
- lane.lock.lock();
--(o->lru_refcnt);
o->lru_flags &= ~FLAG_EVICTING;
/* unlock in next block */