]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Merge pull request #17149 from smithfarm/wip-20399-jewel
authorNathan Cutler <presnypreklad@gmail.com>
Tue, 6 Feb 2018 14:10:34 +0000 (15:10 +0100)
committerGitHub <noreply@github.com>
Tue, 6 Feb 2018 14:10:34 +0000 (15:10 +0100)
jewel: rgw: rgw_file: recursive lane lock can occur in LRU drain

Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
1  2 
src/common/cohort_lru.h

index 0121eda9dbe221074c90db361490234efd95f41f,21cc4e1b3393713bd8870aecc795130e7f481d6d..f1a679047fd21b958bb7abba3606fcc516a75326
@@@ -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;