[FASTFAT]

Acquire DirResource in DoQuery() before attempting to play with FCBs.

This is dedicated to Thomas ;-)

svn path=/trunk/; revision=65024
This commit is contained in:
Pierre Schweitzer
2014-10-26 18:48:30 +00:00
parent 7491f794e3
commit d10c7decd5
@@ -504,6 +504,13 @@ DoQuery(
DirContext.ShortNameU.Buffer = ShortNameBuffer;
DirContext.ShortNameU.MaximumLength = sizeof(ShortNameBuffer);
if (!ExAcquireResourceExclusiveLite(&IrpContext->DeviceExt->DirResource,
(BOOLEAN)(IrpContext->Flags & IRPCONTEXT_CANWAIT)))
{
ExReleaseResourceLite(&pFcb->MainResource);
return VfatQueueRequest(IrpContext);
}
while ((Status == STATUS_SUCCESS) && (BufferLength > 0))
{
Status = FindFile(IrpContext->DeviceExt,
@@ -579,6 +586,7 @@ DoQuery(
IrpContext->Irp->IoStatus.Information = Stack->Parameters.QueryDirectory.Length - BufferLength;
}
ExReleaseResourceLite(&IrpContext->DeviceExt->DirResource);
ExReleaseResourceLite(&pFcb->MainResource);
return Status;