OpenAFS Master Repository branch, master, updated. openafs-devel-1_5_66-33-g95770bf

Gerrit Code Review gerrit@openafs.org
Wed, 4 Nov 2009 20:40:28 -0800 (PST)


The following commit has been merged in the master branch:
commit 95770bf95ad766207252ea0c2d2b5ab2415c896f
Author: Simon Wilkinson <sxw@inf.ed.ac.uk>
Date:   Wed Nov 4 23:40:39 2009 +0000

    Prevent VLRUQ race in ShakeLooseVCaches
    
    When ShakeLooseVCaches is called from afs_Daemon, the xvcache lock
    is not held. This means that if the GLOCK is dropped for any reason
    (for example, whilst purging the dentry cache), then
    ShakeLooseVCaches can be raced, end we can end up attempting to
    flush the same vcache twice.
    
    The symptoms of this in Linux are that we oops in clear_inode.
    
    Get the xvcache lock in afs_Daemon(), before calling
    ShakeLooseVCaches. Also, remove the conditional GLOCK code from
    that function. If we don't have the GLOCK on entry, then we're really
    in trouble (and both code paths - afs_Daemon and afs_NewVCache should
    get the GLOCK for us, anyway)
    
    FIXES 125589
    
    Change-Id: I3fe5b41a661cd162ec73c51492925ad87c6d4c13
    Reviewed-on: http://gerrit.openafs.org/781
    Reviewed-by: Marc Dionne <marc.c.dionne@gmail.com>
    Tested-by: Derrick Brashear <shadow@dementia.org>
    Reviewed-by: Derrick Brashear <shadow@dementia.org>

 src/afs/afs_daemons.c |    6 ++++++
 src/afs/afs_vcache.c  |    9 ---------
 2 files changed, 6 insertions(+), 9 deletions(-)

-- 
OpenAFS Master Repository