]> git-server-git.apps.pok.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>
Mon, 13 Feb 2017 21:28:03 +0000 (16:28 -0500)
commitbeaeff059375b44188160dbde8a81dd4f4f8c6eb
treeb01c02b802c1f8c3fbe823123d2748de09c7c189
parent462034e17f919fb783ee33e2c9fa8089f93fd97d
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>
src/common/cohort_lru.h
src/rgw/rgw_file.cc
src/rgw/rgw_file.h