OpenAFS Master Repository branch, openafs-devel-1_7_x, updated. openafs-devel-1_7_6-17-gf904d53

Gerrit Code Review gerrit@openafs.org
Wed, 22 Feb 2012 06:14:40 -0800 (PST)


The following commit has been merged in the openafs-devel-1_7_x branch:
commit f904d53f80354d9d911fdcead5ddc4c115635478
Author: Jeffrey Altman <jaltman@your-file-system.com>
Date:   Mon Feb 20 20:50:53 2012 -0500

    Windows: AFSPerformObjectInvalidate hold ExtentsResource shared
    
    The AFSPerformObjectInvalidate() was obtaining exclusive
    access to the Fcb ExtentsResource even though it was not
    tearing down the extents list.  The ExtentsResource could
    be held shared instead.  Doing so will avoid the following
    deadlock:
    
    Thread 1:
     nt!MmPurgeSection+0x403
     nt!CcPurgeCacheSection+0x100
     AFSRedirLib!AFSPerformObjectInvalidate+0xd4
     AFSRedirLib!AFSWorkerThread+0xa4
     nt!PspSystemThreadStartup+0x2e
    
    Thread 2:
     AFSRedirLib!AFSAcquireShared+0x18
     AFSRedirLib!AFSMarkDirty+0x68
     AFSRedirLib!AFSNonCachedWrite+0x603
     AFSRedirLib!AFSCommonWrite+0x5fa
     AFSRedirLib!AFSWrite+0x20
     nt!IofCallDriver+0x45
     AFSRedir!AFSWrite+0x57
     nt!IofCallDriver+0x45
     fltMgr!FltpDispatch+0x6f
     nt!IofCallDriver+0x45
     AMFilter+0x2c6e
     nt!IofCallDriver+0x45
     PMDriver+0x112a
     nt!IofCallDriver+0x45
     OpLoader+0x1cd2
     nt!IofCallDriver+0x45
     savonaccesscontrol+0x6f15
     savonaccessfilter+0x2fa0
     nt!IofCallDriver+0x45
     nt!IoAsynchronousPageWrite+0xd0
     nt!MiMappedPageWriter+0x127
     nt!PspSystemThreadStartup+0x2e
    
    Thread 1 is attempting to perform a cache purge which cannot complete
    until Thread 2 is finished but Thread 2 requires the ExtentsResource
    which is held by Thread 1.
    
    Reviewed-on: http://gerrit.openafs.org/6744
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
    Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
    (cherry picked from commit 5965c5390bf8264dacf60016929fc8d3aa83a7ea)
    
    Change-Id: I1555f6f504fa7f14a9d6cb0389c641a54a7e45fa
    Reviewed-on: http://gerrit.openafs.org/6746
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
    Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>

 src/WINNT/afsrdr/kernel/lib/AFSExtentsSupport.cpp |    4 ++--
 src/WINNT/afsrdr/kernel/lib/AFSGeneric.cpp        |    9 ++++++++-
 2 files changed, 10 insertions(+), 3 deletions(-)

-- 
OpenAFS Master Repository