https://git.reactos.org/?p=reactos.git;a=commitdiff;h=bde2ee571a408088995127ef654e88c9512786bd

commit bde2ee571a408088995127ef654e88c9512786bd
Author:     Jérôme Gardou <[email protected]>
AuthorDate: Wed Jan 27 09:22:32 2021 +0100
Commit:     Jérôme Gardou <[email protected]>
CommitDate: Wed Feb 3 09:41:23 2021 +0100

    [NTOS:FSRTL] Properly leave FsRtl when returning STATUS_CANT_WAIT
---
 ntoskrnl/fsrtl/fastio.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/ntoskrnl/fsrtl/fastio.c b/ntoskrnl/fsrtl/fastio.c
index a056b67e109..ce629f77a02 100644
--- a/ntoskrnl/fsrtl/fastio.c
+++ b/ntoskrnl/fsrtl/fastio.c
@@ -1714,9 +1714,13 @@ FsRtlAcquireFileForCcFlushEx(IN PFILE_OBJECT FileObject)
 
         /* Return either success or inability to wait.
            In case of other failure - fall through */
-        if (Status == STATUS_SUCCESS ||
-            Status == STATUS_CANT_WAIT)
+        if (NT_SUCCESS(Status))
+            return Status;
+
+        if (Status == STATUS_CANT_WAIT)
         {
+            DPRINT1("STATUS_CANT_WAIT\n");
+            FsRtlExitFileSystem();
             return Status;
         }
     }

Reply via email to