OpenAFS Master Repository branch, master, updated. openafs-devel-1_5_76-2217-gfdf1dfc
Gerrit Code Review
gerrit@openafs.org
Sat, 3 Mar 2012 15:22:00 -0800 (PST)
The following commit has been merged in the master branch:
commit fdf1dfc5f92fcd149a7ae0945e4458993b2ad61e
Author: Jeffrey Altman <jaltman@your-file-system.com>
Date: Fri Mar 2 10:52:35 2012 -0500
Windows: Avoid deadlock in invalidation path
During data version invalidation the AFS redirector must CcPurge
any non-dirty extents on a file. This operation can be intercepted
by a filter driver which in turn might open the file and close it
again before the CcPurge completes.
The AFSPerformObjectInvalidate call holds the ExtentsResource
shared which can deadlock if AFSClose attempts an extent tear down
which requires exclusive access to the ExtentsResource.
Change-Id: I7cb0289d8036aabf56bb11fd12a79308be45faa8
Reviewed-on: http://gerrit.openafs.org/6856
Reviewed-by: Derrick Brashear <shadow@dementix.org>
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/common/AFSRedirCommonDefines.h | 2 +-
src/WINNT/afsrdr/kernel/lib/AFSExtentsSupport.cpp | 100 +++++++
src/WINNT/afsrdr/kernel/lib/AFSGeneric.cpp | 285 +++++++++++++++++----
src/WINNT/afsrdr/kernel/lib/Include/AFSCommon.h | 5 +
src/WINNT/afsrdr/kernel/lib/Include/AFSStructs.h | 9 +
5 files changed, 350 insertions(+), 51 deletions(-)
--
OpenAFS Master Repository