OpenAFS Master Repository branch, master, updated. openafs-devel-1_5_68-18-g994ef0e

Gerrit Code Review gerrit@openafs.org
Sat, 19 Dec 2009 08:36:21 -0800 (PST)


The following commit has been merged in the master branch:
commit 994ef0e7cab95e2fc6f47fc8838490112e432ffd
Author: Simon Wilkinson <sxw@inf.ed.ac.uk>
Date:   Sat Dec 19 14:48:32 2009 +0000

    Linux: Flush vcaches when a mount fails
    
    GetVCache (well, really NewVCache) creates a new vcache, with an attached
    inode, and links it into the VLRU queue, regardless of whether it is
    successful in populating that vcache or not. The attached inode, on Linux,
    contains a reference to the super block of the filesystem. If the created
    vcache is for the root, however, and populating that vcache failes, then mount
    fails, and the super block is disposed of. This leaves us with a vcache in
    the VLRU queue which contains a reference to a non-existent inode.
    
    When ShakeLooseVCaches comes along a few minutes later, it attempts to discard
    this inode. However, doing so fails because the inode no longer has a valid
    super block.
    
    Avoid this trauma by ensuring all vcaches are disposed of before the super
    block goes away, in the event of a mount failure.
    
    Change-Id: I68864f1ea401d24adba76164905a17de6ab3e6ce
    Reviewed-on: http://gerrit.openafs.org/1003
    Reviewed-by: Marc Dionne <marc.c.dionne@gmail.com>
    Tested-by: Marc Dionne <marc.c.dionne@gmail.com>
    Reviewed-by: Derrick Brashear <shadow@dementia.org>

 src/afs/LINUX/osi_vfsops.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

-- 
OpenAFS Master Repository