mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-02 12:23:31 +00:00
[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:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user