From 74c741aea690d43046d68dc704530675b4905e93 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 22 Feb 2026 04:18:26 +0000 Subject: [PATCH 1/2] Initial plan From dd2947771f5564b094860291b6a4aa35734748cf Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 22 Feb 2026 04:25:51 +0000 Subject: [PATCH 2/2] UDFS: Fix paging IO wait handling without boolean literals in read.cpp and write.cpp Co-authored-by: Zero3K20 <258969903+Zero3K20@users.noreply.github.com> --- drivers/filesystems/udfs/read.cpp | 9 +++++++++ drivers/filesystems/udfs/write.cpp | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/drivers/filesystems/udfs/read.cpp b/drivers/filesystems/udfs/read.cpp index ca1795add66de..764e8a071158b 100644 --- a/drivers/filesystems/udfs/read.cpp +++ b/drivers/filesystems/udfs/read.cpp @@ -149,6 +149,15 @@ UDFCommonRead( NonCachedIo = TRUE; } + // If this is async paging io then check if we are being called by the mapped page writer. + // Convert it back to synchronous if not. + + if (!Wait && PagingIo) { + + SetFlag(IrpContext->Flags, IRP_CONTEXT_FLAG_WAIT); + Wait = BooleanFlagOn(IrpContext->Flags, IRP_CONTEXT_FLAG_WAIT); + } + _SEH2_TRY { // Acquire the appropriate FCB resource shared diff --git a/drivers/filesystems/udfs/write.cpp b/drivers/filesystems/udfs/write.cpp index 75feee29a023a..e5641e881cff3 100644 --- a/drivers/filesystems/udfs/write.cpp +++ b/drivers/filesystems/udfs/write.cpp @@ -132,8 +132,8 @@ UDFCommonWrite( if (!Wait && PagingIo) { - Wait = TRUE; SetFlag(IrpContext->Flags, IRP_CONTEXT_FLAG_WAIT); + Wait = BooleanFlagOn(IrpContext->Flags, IRP_CONTEXT_FLAG_WAIT); } StartingOffset = IrpSp->Parameters.Write.ByteOffset.QuadPart;