Yogendra.Tangalapally(a)ibm.com has uploaded this change for review. (
https://review.gerrithub.io/c/ffilz/nfs-ganesha/+/1235302?usp=email )
Change subject: Fixed unable to unmount fs after all exports removed
......................................................................
Fixed unable to unmount fs after all exports removed
Fixed below deadlock scenario:
1. dbus thread -> Acquire rw lock on fs_lock. while it trying to unclaim gpfs file
system.
It makes ioctl call to gpfs to stop upcall thread and wait for upcall thread to exit using
pthread_join.
2. In upcall thread, gpfs_ganesha(OPENHANDLE_INODE_UPDATE, &callback) returns with
THREAD_STOP and
this thread also tries to acquire fs_lock in order get fsal_export reference.
Since it is already acquired by dbus thread which is waiting for upcall thread to exit,
this scenario resulting in deadlock
fsal_export is not required in case of THREAD_STOP, as op_context not required.
So thread can be stopped without acquiring the fs_lock.
Change-Id: I57e02d902cbf703137122fa3653e45731c3e92a8
Signed-off-by: Yogendra Charya Tangalapally <Yogendra.Tangalapally(a)ibm.com>
---
M src/FSAL/FSAL_GPFS/fsal_up.c
1 file changed, 8 insertions(+), 7 deletions(-)
git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/02/1235302/1
--
To view, visit
https://review.gerrithub.io/c/ffilz/nfs-ganesha/+/1235302?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: I57e02d902cbf703137122fa3653e45731c3e92a8
Gerrit-Change-Number: 1235302
Gerrit-PatchSet: 1
Gerrit-Owner: Yogendra.Tangalapally(a)ibm.com