The following commit has been merged in the openafs-stable-1_6_x branch:
commit 49a95f7c2bd550436e4bb2b7b4e9843315c0ebba
Author: Marcio Barbosa <[email protected]>
Date: Tue Dec 29 10:31:43 2015 -0300
afs: do not allow two shutdown sequences in parallel
Often, ‘afsd -shutdown’ is called right after ‘umount’.
Both commands hold the glock before calling ‘afs_shutdown’.
However, one of the functions called by 'afs_shutdown', namely,
‘afs_FlushVCBs’, might drop the glock when the global
'afs_shuttingdown' is still equal to 0. As a result, a scenario
with two shutdown sequences proceeding in parallel is possible.
To fix the problem, the global ‘afs_shuttingdown’ is used as an
enumerated type to make sure that the second thread will not run
‘afs_shutdown’ while the first one is stuck inside ‘afs_FlushVCBs’.
Reviewed-on: http://gerrit.openafs.org/12016
Tested-by: BuildBot <[email protected]>
Reviewed-by: Chas Williams <[email protected]>
Reviewed-by: Michael Meffie <[email protected]>
Reviewed-by: Benjamin Kaduk <[email protected]>
(cherry picked from commit 70fd9bc6dcc79cb25e98cdcfd0f085c4bf4f310a)
Change-Id: I073d1914a7daa858a78305ff154074f2a51a9f5f
Reviewed-on: https://gerrit.openafs.org/12179
Tested-by: BuildBot <[email protected]>
Reviewed-by: Marcio Brito Barbosa <[email protected]>
Reviewed-by: Benjamin Kaduk <[email protected]>
Reviewed-by: Stephan Wiesand <[email protected]>
src/afs/AIX/osi_file.c | 2 +-
src/afs/DARWIN/osi_file.c | 2 +-
src/afs/DARWIN/osi_module.c | 2 +-
src/afs/FBSD/osi_file.c | 2 +-
src/afs/HPUX/osi_file.c | 2 +-
src/afs/HPUX/osi_vnodeops.c | 2 +-
src/afs/IRIX/osi_file.c | 2 +-
src/afs/LINUX/osi_file.c | 4 ++--
src/afs/LINUX/osi_vnodeops.c | 2 +-
src/afs/LINUX24/osi_file.c | 4 ++--
src/afs/LINUX24/osi_vnodeops.c | 2 +-
src/afs/NBSD/osi_file.c | 2 +-
src/afs/OBSD/osi_file.c | 2 +-
src/afs/SOLARIS/osi_file.c | 2 +-
src/afs/SOLARIS/osi_vnodeops.c | 2 +-
src/afs/UKERNEL/osi_vnodeops.c | 2 +-
src/afs/VNOPS/afs_vnop_attrs.c | 2 +-
src/afs/VNOPS/afs_vnop_fid.c | 2 +-
src/afs/afs.h | 8 ++++++--
src/afs/afs_call.c | 14 +++++++-------
src/afs/afs_osi_pag.c | 6 +++---
src/afs/afs_pag_call.c | 6 +++---
src/afs/afs_vcache.c | 2 +-
src/rx/SOLARIS/rx_knet.c | 2 +-
24 files changed, 41 insertions(+), 37 deletions(-)
--
OpenAFS Master Repository
_______________________________________________
OpenAFS-cvs mailing list
[email protected]
https://lists.openafs.org/mailman/listinfo/openafs-cvs