1
0
mirror of https://github.com/bobranten/Ext4Fsd.git synced 2026-03-16 05:10:37 -05:00

removed a number of if statements that is not needed if the wait argument to CcCopyRead and CcCopyWrite is set to TRUE

This commit is contained in:
Bo Branten
2026-02-09 16:54:34 +01:00
parent 2ad48351d5
commit 1d66b0b55d
2 changed files with 12 additions and 44 deletions

View File

@@ -429,18 +429,15 @@ Ext2ReadInode (
for (Extent = Chain; Extent != NULL; Extent = Extent->Next) { for (Extent = Chain; Extent != NULL; Extent = Extent->Next) {
if (!CcCopyRead( CcCopyRead(
Vcb->Volume, Vcb->Volume,
(PLARGE_INTEGER)(&(Extent->Lba)), (PLARGE_INTEGER)(&(Extent->Lba)),
Extent->Length, Extent->Length,
TRUE, TRUE,
(PVOID)((PUCHAR)Buffer + Extent->Offset), (PVOID)((PUCHAR)Buffer + Extent->Offset),
&IoStatus &IoStatus
)) { );
Status = STATUS_CANT_WAIT; Status = IoStatus.Status;
} else {
Status = IoStatus.Status;
}
if (!NT_SUCCESS(Status)) { if (!NT_SUCCESS(Status)) {
break; break;
@@ -694,17 +691,7 @@ Ext2ReadFile(IN PEXT2_IRP_CONTEXT IrpContext)
__leave; __leave;
} }
if (!CcCopyRead(FileObject, &ByteOffset, ReturnedLength, CcCopyRead(FileObject, &ByteOffset, ReturnedLength, TRUE, Buffer, &Irp->IoStatus);
Ext2CanIWait(), Buffer, &Irp->IoStatus)) {
if (Ext2CanIWait() || !CcCopyRead(FileObject, &ByteOffset,
ReturnedLength, TRUE,
Buffer, &Irp->IoStatus)) {
Status = STATUS_PENDING;
DbgBreak();
__leave;
}
}
Status = Irp->IoStatus.Status; Status = Irp->IoStatus.Status;
} }

View File

@@ -43,7 +43,6 @@ Ext2FloppyFlushDpc (
IN PVOID SystemArgument1, IN PVOID SystemArgument1,
IN PVOID SystemArgument2); IN PVOID SystemArgument2);
NTSTATUS NTSTATUS
Ext2WriteComplete (IN PEXT2_IRP_CONTEXT IrpContext); Ext2WriteComplete (IN PEXT2_IRP_CONTEXT IrpContext);
@@ -56,7 +55,6 @@ Ext2WriteVolume (IN PEXT2_IRP_CONTEXT IrpContext);
VOID VOID
Ext2DeferWrite(IN PEXT2_IRP_CONTEXT, PIRP Irp); Ext2DeferWrite(IN PEXT2_IRP_CONTEXT, PIRP Irp);
/* FUNCTIONS *************************************************************/ /* FUNCTIONS *************************************************************/
VOID VOID
@@ -215,7 +213,6 @@ Ext2DeferWrite(IN PEXT2_IRP_CONTEXT IrpContext, PIRP Irp)
Ext2QueueRequest(IrpContext); Ext2QueueRequest(IrpContext);
} }
NTSTATUS NTSTATUS
Ext2WriteVolume (IN PEXT2_IRP_CONTEXT IrpContext) Ext2WriteVolume (IN PEXT2_IRP_CONTEXT IrpContext)
{ {
@@ -421,14 +418,7 @@ Ext2WriteVolume (IN PEXT2_IRP_CONTEXT IrpContext)
__leave; __leave;
} }
if (!CcCopyWrite( Vcb->Volume, CcCopyWrite(Vcb->Volume, (PLARGE_INTEGER)(&ByteOffset), Length, TRUE, Buffer);
(PLARGE_INTEGER)(&ByteOffset),
Length,
TRUE,
Buffer )) {
Status = STATUS_PENDING;
__leave;
}
Status = Irp->IoStatus.Status; Status = Irp->IoStatus.Status;
Ext2AddVcbExtent(Vcb, ByteOffset.QuadPart, (LONGLONG)Length); Ext2AddVcbExtent(Vcb, ByteOffset.QuadPart, (LONGLONG)Length);
@@ -742,7 +732,6 @@ Ext2WriteInode (
return Status; return Status;
} }
NTSTATUS NTSTATUS
Ext2WriteFile(IN PEXT2_IRP_CONTEXT IrpContext) Ext2WriteFile(IN PEXT2_IRP_CONTEXT IrpContext)
{ {
@@ -1129,14 +1118,7 @@ Ext2WriteFile(IN PEXT2_IRP_CONTEXT IrpContext)
} }
} }
if (!CcCopyWrite(FileObject, &ByteOffset, Length, Ext2CanIWait(), Buffer)) { CcCopyWrite(FileObject, &ByteOffset, Length, TRUE, Buffer);
if (Ext2CanIWait() ||
!CcCopyWrite(FileObject, &ByteOffset, Length, TRUE, Buffer)) {
Status = STATUS_PENDING;
DbgBreak();
__leave;
}
}
if (ByteOffset.QuadPart + Length > Fcb->Header.ValidDataLength.QuadPart ) { if (ByteOffset.QuadPart + Length > Fcb->Header.ValidDataLength.QuadPart ) {
@@ -1333,7 +1315,6 @@ Ext2WriteComplete (IN PEXT2_IRP_CONTEXT IrpContext)
return Status; return Status;
} }
NTSTATUS NTSTATUS
Ext2Write (IN PEXT2_IRP_CONTEXT IrpContext) Ext2Write (IN PEXT2_IRP_CONTEXT IrpContext)
{ {