Daniel Gryniewicz has uploaded this change for review.

View Change

MDCACHE - Don't drop the sentinal ref with the lock held

Dropping the sentinal ref in cih_remove_checked() may cause a cleanup
of the entry, which will recurse into cih_remove_checked() again. This
will abort, because the lock is already held by this thread.

Instead, drop the lock before we actually drop the ref. That way, if
it's the last ref (which is common in error cases), the cleanup will
recurse, and not find it in the hash table.

Change-Id: Iccf982f2b2d85a3617f1604e0636afce9501fdfc
Signed-off-by: Daniel Gryniewicz <dang@redhat.com>
---
M src/FSAL/Stackable_FSALs/FSAL_MDCACHE/mdcache_hash.h
1 file changed, 9 insertions(+), 1 deletion(-)

git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/12/445712/1

To view, visit change 445712. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: ffilz/nfs-ganesha
Gerrit-Branch: next
Gerrit-Change-Id: Iccf982f2b2d85a3617f1604e0636afce9501fdfc
Gerrit-Change-Number: 445712
Gerrit-PatchSet: 1
Gerrit-Owner: Daniel Gryniewicz <dang@redhat.com>
Gerrit-MessageType: newchange