Rojin George has uploaded this change for review. (
https://review.gerrithub.io/c/ffilz/nfs-ganesha/+/1186237?usp=email )
Change subject: Handle parallel delegation recalls for the same fsal_objs
......................................................................
Handle parallel delegation recalls for the same fsal_objs
There were multiple delegation recalls happening for the same
obj. The first thread enters with state lock to recall, once found
that it could expire off the client which has gone inactive, we
were releasing the state lock and setting DELEG_GRANTED for the
state->state_data.deleg.sd_state, before actually expiring the
client. This opens up window to the contending async task to acquire
the same state lock and crash off, as it started dereferencing the
clientid related structures which would have gone stale,
as part of the first threads client expire path.
This CR avoid such contenders to skip processing this state by
setting DELEG_GRANTED only after the client is expired off and
owner reference to state removed off the clientid.
Change-Id: I1769c8138eafa00ac0b233f629e0384f5e8b9d79
Signed-off-by: Rojin George <itsmerojin(a)gmail.com>
---
M src/FSAL_UP/fsal_up_top.c
1 file changed, 1 insertion(+), 1 deletion(-)
git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/37/1186237/1
--
To view, visit
https://review.gerrithub.io/c/ffilz/nfs-ganesha/+/1186237?usp=email
To unsubscribe, or for help writing mail filters, visit
https://review.gerrithub.io/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: ffilz/nfs-ganesha
Gerrit-Branch: next
Gerrit-Change-Id: I1769c8138eafa00ac0b233f629e0384f5e8b9d79
Gerrit-Change-Number: 1186237
Gerrit-PatchSet: 1
Gerrit-Owner: Rojin George <itsmerojin(a)gmail.com>