]> git.michaelhowe.org Git - packages/o/openafs.git/commit
Windows: VolumeCB->ObjectInfoTree.TreeLock Deadlock
authorJeffrey Altman <jaltman@your-file-system.com>
Fri, 17 Feb 2012 04:50:18 +0000 (23:50 -0500)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Fri, 17 Feb 2012 17:44:17 +0000 (09:44 -0800)
commit780e497b32a927e008474a63b0427eca5d5a8877
treedfc296888a0d183cbad69e83f1bc0703803b2f86
parente5e9260c7936ce0b4d51855291421679acccaed4
Windows: VolumeCB->ObjectInfoTree.TreeLock Deadlock

AFSPrimaryVolumeWorkerThread held the VolumeCB->ObjectInfoTree.TreeLock
exclusively across calls to AFSCleanupFcb() which in turn triggers
a file extent release to the service which can in turn result in
an object invalidation.  Processing the invalidation requires shared
access to VolumeCB->ObjectInfoTree.TreeLock which results in a deadlock.

This patch alters the processing of AFSPrimaryVolumeWorkerThread
so that the VolumeCB->ObjectInfoTree.TreeLock is not held across
the AFSCleanupFcb() calls.

FIXES 130431

Change-Id: I3726df02ab47d2dcc83a32c75957a5dafcfbf20e
Reviewed-on: http://gerrit.openafs.org/6724
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Peter Scott <pscott@kerneldrivers.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
src/WINNT/afsrdr/kernel/lib/AFSWorker.cpp