Ashish Sangwan has uploaded this change for review.
MDCACHE - Fix race between lru functions for the chunk and the parent
of the chunk getting freed and reused.
The LRU functions which acts on the chunk, chunk_lru_run_lane and
lru_reap_chunk_impl both of them takes ref on the chunk and dropa
the qlane lock before calling mdcache_lru_unref_chunk to drop
the ref taken earlier. The extra ref prevents the chunk from getting
freed but it can't stop the chunk's parent from getting freed and reused.
We are hitting a hang when trying to acquire content lock on
the freed parent.
These LRU functions doesn't actually need ref and holding the qlane
lock is enough to prevent the chunk from being freed.
Signed-off-by: Ashish Sangwan <ashishsangwan2@gmail.com>
Change-Id: I3cb5f09fa4894c121545a47182116e77d94f0643
---
M src/FSAL/Stackable_FSALs/FSAL_MDCACHE/mdcache_avl.c
M src/FSAL/Stackable_FSALs/FSAL_MDCACHE/mdcache_helpers.c
M src/FSAL/Stackable_FSALs/FSAL_MDCACHE/mdcache_lru.c
M src/FSAL/Stackable_FSALs/FSAL_MDCACHE/mdcache_lru.h
4 files changed, 25 insertions(+), 56 deletions(-)
git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/73/451673/1
To view, visit change 451673. To unsubscribe, or for help writing mail filters, visit settings.