mirror of
https://github.com/reactos/reactos.git
synced 2025-02-24 17:34:57 +00:00
[cdfs]
- CdfsVerifyVolume: Disable the delivery of normal Kernel APC's before acquiring resource and re-enable APC's after releasing resource. Fixes ASSERT from ntoskrnl/ex/resource.c. Noticed by Stefan. svn path=/trunk/; revision=43982
This commit is contained in:
parent
51050d323b
commit
3b6b3c96d5
1 changed files with 3 additions and 0 deletions
|
@ -466,6 +466,7 @@ CdfsVerifyVolume(PDEVICE_OBJECT DeviceObject,
|
||||||
Stack = IoGetCurrentIrpStackLocation (Irp);
|
Stack = IoGetCurrentIrpStackLocation (Irp);
|
||||||
DeviceToVerify = Stack->Parameters.VerifyVolume.DeviceObject;
|
DeviceToVerify = Stack->Parameters.VerifyVolume.DeviceObject;
|
||||||
|
|
||||||
|
FsRtlEnterFileSystem();
|
||||||
ExAcquireResourceExclusiveLite (&DeviceExt->VcbResource,
|
ExAcquireResourceExclusiveLite (&DeviceExt->VcbResource,
|
||||||
TRUE);
|
TRUE);
|
||||||
|
|
||||||
|
@ -473,6 +474,7 @@ CdfsVerifyVolume(PDEVICE_OBJECT DeviceObject,
|
||||||
{
|
{
|
||||||
DPRINT1 ("Volume has been verified!\n");
|
DPRINT1 ("Volume has been verified!\n");
|
||||||
ExReleaseResourceLite (&DeviceExt->VcbResource);
|
ExReleaseResourceLite (&DeviceExt->VcbResource);
|
||||||
|
FsRtlExitFileSystem();
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -511,6 +513,7 @@ CdfsVerifyVolume(PDEVICE_OBJECT DeviceObject,
|
||||||
DeviceToVerify->Flags &= ~DO_VERIFY_VOLUME;
|
DeviceToVerify->Flags &= ~DO_VERIFY_VOLUME;
|
||||||
|
|
||||||
ExReleaseResourceLite (&DeviceExt->VcbResource);
|
ExReleaseResourceLite (&DeviceExt->VcbResource);
|
||||||
|
FsRtlExitFileSystem();
|
||||||
|
|
||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue