Daniel Gryniewicz has uploaded this change for review. (
https://review.gerrithub.io/c/ffilz/nfs-ganesha/+/441566
Change subject: MDCACHE - Don't return dead entries from hashtable
......................................................................
MDCACHE - Don't return dead entries from hashtable
When the refcount of an entry goes to zero, it's removed from the LRU
under the lane lock, and then the lane lock is dropped, and the entry is
cleaned up. This includes removing it from the hash table.
However, there is a window during which mdcache_find_keyed_reason() or
mdcache_new_entry() can find it from the hash table, and increment it's
refcount to 1. This causes it's refcount to go to zero again, recursing
into cih_remove_checked(), causing an assert.
Fix the hash table to not return an entry if it's refcount is zero.
Change-Id: I9a922a1fb54561f04d71cc83c0bcd3289ec854ae
Signed-off-by: Daniel Gryniewicz <dang(a)redhat.com>
---
M src/FSAL/Stackable_FSALs/FSAL_MDCACHE/mdcache_hash.h
1 file changed, 6 insertions(+), 0 deletions(-)
git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/66/441566/1
--
To view, visit
https://review.gerrithub.io/c/ffilz/nfs-ganesha/+/441566
To unsubscribe, or for help writing mail filters, visit
https://review.gerrithub.io/settings
Gerrit-Project: ffilz/nfs-ganesha
Gerrit-Branch: next
Gerrit-Change-Id: I9a922a1fb54561f04d71cc83c0bcd3289ec854ae
Gerrit-Change-Number: 441566
Gerrit-PatchSet: 1
Gerrit-Owner: Daniel Gryniewicz <dang(a)redhat.com>
Gerrit-MessageType: newchange