Author: pschweitzer Date: Sun May 17 12:22:28 2015 New Revision: 67808
URL: http://svn.reactos.org/svn/reactos?rev=67808&view=rev Log: [FASTFAT] Fix a fixme in VfatGetUserBuffer(): Only request high priority page when in the paging path. Otherwise, request normal priority
Modified: trunk/reactos/drivers/filesystems/fastfat/dir.c trunk/reactos/drivers/filesystems/fastfat/misc.c trunk/reactos/drivers/filesystems/fastfat/rw.c trunk/reactos/drivers/filesystems/fastfat/vfat.h
Modified: trunk/reactos/drivers/filesystems/fastfat/dir.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/filesystems/fastfat... ============================================================================== --- trunk/reactos/drivers/filesystems/fastfat/dir.c [iso-8859-1] (original) +++ trunk/reactos/drivers/filesystems/fastfat/dir.c [iso-8859-1] Sun May 17 12:22:28 2015 @@ -419,7 +419,7 @@ ProbeForWrite(IrpContext->Irp->UserBuffer, BufferLength, 1); } #endif - Buffer = VfatGetUserBuffer(IrpContext->Irp); + Buffer = VfatGetUserBuffer(IrpContext->Irp, FALSE);
if (!ExAcquireResourceSharedLite(&pFcb->MainResource, (BOOLEAN)(IrpContext->Flags & IRPCONTEXT_CANWAIT)))
Modified: trunk/reactos/drivers/filesystems/fastfat/misc.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/filesystems/fastfat... ============================================================================== --- trunk/reactos/drivers/filesystems/fastfat/misc.c [iso-8859-1] (original) +++ trunk/reactos/drivers/filesystems/fastfat/misc.c [iso-8859-1] Sun May 17 12:22:28 2015 @@ -327,15 +327,14 @@
PVOID VfatGetUserBuffer( - IN PIRP Irp) + IN PIRP Irp, + IN BOOLEAN Paging) { ASSERT(Irp);
if (Irp->MdlAddress) { - /* This call may be in the paging path, so use maximum priority */ - /* FIXME: call with normal priority in the non-paging path */ - return MmGetSystemAddressForMdlSafe(Irp->MdlAddress, HighPagePriority); + return MmGetSystemAddressForMdlSafe(Irp->MdlAddress, (Paging ? HighPagePriority : NormalPagePriority)); } else {
Modified: trunk/reactos/drivers/filesystems/fastfat/rw.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/filesystems/fastfat... ============================================================================== --- trunk/reactos/drivers/filesystems/fastfat/rw.c [iso-8859-1] (original) +++ trunk/reactos/drivers/filesystems/fastfat/rw.c [iso-8859-1] Sun May 17 12:22:28 2015 @@ -655,7 +655,7 @@ } }
- Buffer = VfatGetUserBuffer(IrpContext->Irp); + Buffer = VfatGetUserBuffer(IrpContext->Irp, IrpContext->Irp->Flags & IRP_PAGING_IO); if (!Buffer) { Status = STATUS_INVALID_USER_BUFFER; @@ -926,7 +926,7 @@
OldFileSize = Fcb->RFCB.FileSize;
- Buffer = VfatGetUserBuffer(IrpContext->Irp); + Buffer = VfatGetUserBuffer(IrpContext->Irp, IrpContext->Irp->Flags & IRP_PAGING_IO); if (!Buffer) { Status = STATUS_INVALID_USER_BUFFER;
Modified: trunk/reactos/drivers/filesystems/fastfat/vfat.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/filesystems/fastfat... ============================================================================== --- trunk/reactos/drivers/filesystems/fastfat/vfat.h [iso-8859-1] (original) +++ trunk/reactos/drivers/filesystems/fastfat/vfat.h [iso-8859-1] Sun May 17 12:22:28 2015 @@ -928,7 +928,8 @@
PVOID VfatGetUserBuffer( - IN PIRP); + IN PIRP, + IN BOOLEAN Paging);
NTSTATUS VfatLockUserBuffer(