https://git.reactos.org/?p=reactos.git;a=commitdiff;h=bde2ee571a40808899512…
commit bde2ee571a408088995127ef654e88c9512786bd
Author: Jérôme Gardou <jerome.gardou(a)reactos.org>
AuthorDate: Wed Jan 27 09:22:32 2021 +0100
Commit: Jérôme Gardou <jerome.gardou(a)reactos.org>
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;
}
}