OpenAFS Master Repository branch, openafs-stable-1_6_x, updated. openafs-stable-1_6_17-22-g49a95f7

Gerrit Code Review gerrit@openafs.org
Tue, 5 Apr 2016 08:24:15 -0400


The following commit has been merged in the openafs-stable-1_6_x branch:
commit 49a95f7c2bd550436e4bb2b7b4e9843315c0ebba
Author: Marcio Barbosa <mbarbosa@sinenomine.net>
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 <buildbot@rampaginggeek.com>
    Reviewed-by: Chas Williams <3chas3@gmail.com>
    Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
    Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
    (cherry picked from commit 70fd9bc6dcc79cb25e98cdcfd0f085c4bf4f310a)
    
    Change-Id: I073d1914a7daa858a78305ff154074f2a51a9f5f
    Reviewed-on: https://gerrit.openafs.org/12179
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Marcio Brito Barbosa <mbarbosa@sinenomine.net>
    Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
    Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>

 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