mirror of
https://git.openafs.org/openafs.git
synced 2025-01-19 15:30:14 +00:00
Windows: AFSRequestExtentsAsync and AFSDoExtentsMapRegion
When calling AFSDoExtentsMapRegion() the FCB ExtentsResource must be held. AFSRequestExtentsAsync() failed to hold the ExtentsResource across the call. Change-Id: I607cfb45725410c7f079b3be03002b002fccbea4 Reviewed-on: http://gerrit.openafs.org/8220 Tested-by: BuildBot <buildbot@rampaginggeek.com> Tested-by: Jeffrey Altman <jaltman@your-file-system.com> Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
This commit is contained in:
parent
edef37033c
commit
23c9200669
@ -750,9 +750,31 @@ AFSRequestExtentsAsync( IN AFSFcb *Fcb,
|
|||||||
// Check if we are already mapped
|
// Check if we are already mapped
|
||||||
//
|
//
|
||||||
|
|
||||||
|
AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
|
||||||
|
AFS_TRACE_LEVEL_VERBOSE,
|
||||||
|
"AFSRequestExtentsAsync Acquiring Fcb extents lock %08lX SHARED %08lX\n",
|
||||||
|
&pNPFcb->Specific.File.ExtentsResource,
|
||||||
|
PsGetCurrentThread());
|
||||||
|
|
||||||
|
AFSAcquireShared( &pNPFcb->Specific.File.ExtentsResource, TRUE );
|
||||||
|
|
||||||
bRegionMapped = AFSDoExtentsMapRegion( Fcb, Offset, Size, &pFirstExtent, &pExtent);
|
bRegionMapped = AFSDoExtentsMapRegion( Fcb, Offset, Size, &pFirstExtent, &pExtent);
|
||||||
|
|
||||||
if( bRegionMapped)
|
if( bRegionMapped)
|
||||||
|
{
|
||||||
|
|
||||||
|
KeClearEvent( &pNPFcb->Specific.File.ExtentsRequestComplete );
|
||||||
|
}
|
||||||
|
|
||||||
|
AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
|
||||||
|
AFS_TRACE_LEVEL_VERBOSE,
|
||||||
|
"AFSRequestExtentsAsync Releasing Fcb extents lock %08lX SHARED %08lX\n",
|
||||||
|
&pNPFcb->Specific.File.ExtentsResource,
|
||||||
|
PsGetCurrentThread());
|
||||||
|
|
||||||
|
AFSReleaseResource( &pNPFcb->Specific.File.ExtentsResource );
|
||||||
|
|
||||||
|
if ( bRegionMapped)
|
||||||
{
|
{
|
||||||
|
|
||||||
try_return( ntStatus = STATUS_SUCCESS);
|
try_return( ntStatus = STATUS_SUCCESS);
|
||||||
|
Loading…
Reference in New Issue
Block a user