[ros-diffs] [mjmartin] 43982: [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.

mjmartin at svn.reactos.org mjmartin at svn.reactos.org
Fri Nov 6 00:43:57 CET 2009


Author: mjmartin
Date: Fri Nov  6 00:43:57 2009
New Revision: 43982

URL: http://svn.reactos.org/svn/reactos?rev=43982&view=rev
Log:
[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.

Modified:
    trunk/reactos/drivers/filesystems/cdfs/fsctl.c

Modified: trunk/reactos/drivers/filesystems/cdfs/fsctl.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/filesystems/cdfs/fsctl.c?rev=43982&r1=43981&r2=43982&view=diff
==============================================================================
--- trunk/reactos/drivers/filesystems/cdfs/fsctl.c [iso-8859-1] (original)
+++ trunk/reactos/drivers/filesystems/cdfs/fsctl.c [iso-8859-1] Fri Nov  6 00:43:57 2009
@@ -466,6 +466,7 @@
     Stack = IoGetCurrentIrpStackLocation (Irp);
     DeviceToVerify = Stack->Parameters.VerifyVolume.DeviceObject;
 
+    FsRtlEnterFileSystem();
     ExAcquireResourceExclusiveLite (&DeviceExt->VcbResource,
         TRUE);
 
@@ -473,6 +474,7 @@
     {
         DPRINT1 ("Volume has been verified!\n");
         ExReleaseResourceLite (&DeviceExt->VcbResource);
+        FsRtlExitFileSystem();
         return STATUS_SUCCESS;
     }
 
@@ -511,6 +513,7 @@
     DeviceToVerify->Flags &= ~DO_VERIFY_VOLUME;
 
     ExReleaseResourceLite (&DeviceExt->VcbResource);
+    FsRtlExitFileSystem();
 
     return Status;
 }




More information about the Ros-diffs mailing list