Suhas Athani has uploaded this change for review.
Avoid same-client lock-path delegation recall in FSAL_UP (fix recall24)
This change fixes recall24 by preventing spurious NFS delegation recall
when a backend upcall arrives during same-client lock/open-mode
transitions.
With Ceph delegation callbacks, lock-driven reopen activity could trigger
up_async_delegrecall, leading to delegrecall_one/CB_RECALL even when all
active locks belong to the same client that owns the delegation.
Fix:
Added a guard in FSAL_UP (delegrecall_impl_per_state) to skip recall when:
- the file has active locks, and
- all active NFSv4 lock owners map to the same clientid as the delegation
owner.
In that case, delegation state is restored to DELEG_GRANTED and CB_RECALL
is not issued.
This test case is from nfstest delegation suite -
https://github.com/kofemann/nfstest/blob/master/test/nfstest_delegation
Change-Id: I9760d5db1d7cc433501df77abb9048ab8e1b4d97
Signed-off-by: Suhas Athani <Suhas.Athani@ibm.com>
---
M src/FSAL/FSAL_CEPH/handle.c
M src/FSAL_UP/fsal_up_top.c
2 files changed, 77 insertions(+), 1 deletion(-)
git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/27/1235527/1
To view, visit change 1235527. To unsubscribe, or for help writing mail filters, visit settings.