Yogendra.Tangalapally@ibm.com has uploaded this change for review.
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@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 change 1235302. To unsubscribe, or for help writing mail filters, visit settings.