diff --git a/drivers/filesystems/udfs/read.cpp b/drivers/filesystems/udfs/read.cpp index c920331dee579..0e00a96ae1512 100644 --- a/drivers/filesystems/udfs/read.cpp +++ b/drivers/filesystems/udfs/read.cpp @@ -154,7 +154,9 @@ UDFCommonRead( // Acquire the appropriate FCB resource shared if (PagingIo) { - + // Don't offload jobs when doing paging IO - otherwise this can lead to + // deadlocks in CcCopyRead. + Wait = true; UDFAcquireFcbSharedStarveExclusive(IrpContext, Fcb, FALSE); FcbAcquired = TRUE; diff --git a/drivers/filesystems/udfs/write.cpp b/drivers/filesystems/udfs/write.cpp index 076e5a6cbe305..180f38772cae8 100644 --- a/drivers/filesystems/udfs/write.cpp +++ b/drivers/filesystems/udfs/write.cpp @@ -330,6 +330,9 @@ UDFCommonWrite( // Acquire the appropriate FCB resource if (PagingIo) { + // Don't offload jobs when doing paging IO - otherwise this can lead to + // deadlocks in CcCopyWrite. + Wait = true; // For PagingIo: FcbResource already acquired by UDFAcqLazyWrite/UDFFastIoAcqModWrite // callback before this function is called