From 1d66b0b55db282853ea5606e5467d178d9f70fd3 Mon Sep 17 00:00:00 2001 From: Bo Branten Date: Mon, 9 Feb 2026 16:54:34 +0100 Subject: [PATCH] removed a number of if statements that is not needed if the wait argument to CcCopyRead and CcCopyWrite is set to TRUE --- Ext4Fsd/read.c | 33 ++++++++++----------------------- Ext4Fsd/write.c | 23 ++--------------------- 2 files changed, 12 insertions(+), 44 deletions(-) diff --git a/Ext4Fsd/read.c b/Ext4Fsd/read.c index 18de4fd..9bfbf01 100644 --- a/Ext4Fsd/read.c +++ b/Ext4Fsd/read.c @@ -429,18 +429,15 @@ Ext2ReadInode ( for (Extent = Chain; Extent != NULL; Extent = Extent->Next) { - if (!CcCopyRead( - Vcb->Volume, - (PLARGE_INTEGER)(&(Extent->Lba)), - Extent->Length, - TRUE, - (PVOID)((PUCHAR)Buffer + Extent->Offset), - &IoStatus - )) { - Status = STATUS_CANT_WAIT; - } else { - Status = IoStatus.Status; - } + CcCopyRead( + Vcb->Volume, + (PLARGE_INTEGER)(&(Extent->Lba)), + Extent->Length, + TRUE, + (PVOID)((PUCHAR)Buffer + Extent->Offset), + &IoStatus + ); + Status = IoStatus.Status; if (!NT_SUCCESS(Status)) { break; @@ -694,17 +691,7 @@ Ext2ReadFile(IN PEXT2_IRP_CONTEXT IrpContext) __leave; } - if (!CcCopyRead(FileObject, &ByteOffset, ReturnedLength, - Ext2CanIWait(), Buffer, &Irp->IoStatus)) { - - if (Ext2CanIWait() || !CcCopyRead(FileObject, &ByteOffset, - ReturnedLength, TRUE, - Buffer, &Irp->IoStatus)) { - Status = STATUS_PENDING; - DbgBreak(); - __leave; - } - } + CcCopyRead(FileObject, &ByteOffset, ReturnedLength, TRUE, Buffer, &Irp->IoStatus); Status = Irp->IoStatus.Status; } diff --git a/Ext4Fsd/write.c b/Ext4Fsd/write.c index 5d9b108..669563d 100644 --- a/Ext4Fsd/write.c +++ b/Ext4Fsd/write.c @@ -43,7 +43,6 @@ Ext2FloppyFlushDpc ( IN PVOID SystemArgument1, IN PVOID SystemArgument2); - NTSTATUS Ext2WriteComplete (IN PEXT2_IRP_CONTEXT IrpContext); @@ -56,7 +55,6 @@ Ext2WriteVolume (IN PEXT2_IRP_CONTEXT IrpContext); VOID Ext2DeferWrite(IN PEXT2_IRP_CONTEXT, PIRP Irp); - /* FUNCTIONS *************************************************************/ VOID @@ -215,7 +213,6 @@ Ext2DeferWrite(IN PEXT2_IRP_CONTEXT IrpContext, PIRP Irp) Ext2QueueRequest(IrpContext); } - NTSTATUS Ext2WriteVolume (IN PEXT2_IRP_CONTEXT IrpContext) { @@ -421,14 +418,7 @@ Ext2WriteVolume (IN PEXT2_IRP_CONTEXT IrpContext) __leave; } - if (!CcCopyWrite( Vcb->Volume, - (PLARGE_INTEGER)(&ByteOffset), - Length, - TRUE, - Buffer )) { - Status = STATUS_PENDING; - __leave; - } + CcCopyWrite(Vcb->Volume, (PLARGE_INTEGER)(&ByteOffset), Length, TRUE, Buffer); Status = Irp->IoStatus.Status; Ext2AddVcbExtent(Vcb, ByteOffset.QuadPart, (LONGLONG)Length); @@ -742,7 +732,6 @@ Ext2WriteInode ( return Status; } - NTSTATUS Ext2WriteFile(IN PEXT2_IRP_CONTEXT IrpContext) { @@ -1129,14 +1118,7 @@ Ext2WriteFile(IN PEXT2_IRP_CONTEXT IrpContext) } } - if (!CcCopyWrite(FileObject, &ByteOffset, Length, Ext2CanIWait(), Buffer)) { - if (Ext2CanIWait() || - !CcCopyWrite(FileObject, &ByteOffset, Length, TRUE, Buffer)) { - Status = STATUS_PENDING; - DbgBreak(); - __leave; - } - } + CcCopyWrite(FileObject, &ByteOffset, Length, TRUE, Buffer); if (ByteOffset.QuadPart + Length > Fcb->Header.ValidDataLength.QuadPart ) { @@ -1333,7 +1315,6 @@ Ext2WriteComplete (IN PEXT2_IRP_CONTEXT IrpContext) return Status; } - NTSTATUS Ext2Write (IN PEXT2_IRP_CONTEXT IrpContext) {