]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
rgw_file: refcnt bugfixes
authorMatt Benjamin <mbenjamin@redhat.com>
Sun, 12 Feb 2017 23:20:43 +0000 (18:20 -0500)
committerMatt Benjamin <mbenjamin@redhat.com>
Wed, 29 Mar 2017 16:50:59 +0000 (12:50 -0400)
commit166cb7f85c240eeaffc70968abf5352d9cd45bd9
tree9e0dce2227711e7018a2e7b91b7419e4a96f1ad6
parent31a71be9c9f24e22cf7e6eb390d3b39811ee3577
rgw_file: refcnt bugfixes

This change includes 3 related changes:

1. add required lock flags for FHCache updates--this is a crash
   bug under concurrent update/lookup

2. omit to inc/dec refcnt on root filehandles in 2 places--the
   root handle current is not on the lru list, so it's not
   valid to do so

3. based on observation of LRU behavior during creates/deletes,
   update (cohort) LRU unref to move objects to LRU when their
   refcount falls to SENTINEL_REFCNT--this cheaply primes the
   current reclaim() mechanism, so very significanty improves
   space use (e.g., after deletes) in the absence of scans
   (which is common due to nfs-ganesha caching)

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
(cherry picked from commit beaeff059375b44188160dbde8a81dd4f4f8c6eb)
Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
src/common/cohort_lru.h
src/rgw/rgw_file.cc
src/rgw/rgw_file.h