[FASTFAT]

Fix a fixme in VfatGetUserBuffer():
Only request high priority page when in the paging path. Otherwise, request normal priority

svn path=/trunk/; revision=67808
This commit is contained in:
Pierre Schweitzer 2015-05-17 12:22:28 +00:00
parent 22106e6ce1
commit 89eca90722
4 changed files with 8 additions and 8 deletions

View file

@ -419,7 +419,7 @@ DoQuery(
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)))

View file

@ -327,15 +327,14 @@ VfatQueueRequest(
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
{

View file

@ -655,7 +655,7 @@ VfatRead(
}
}
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 @@ VfatWrite(
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;

View file

@ -928,7 +928,8 @@ VfatBuildRequest(
PVOID
VfatGetUserBuffer(
IN PIRP);
IN PIRP,
IN BOOLEAN Paging);
NTSTATUS
VfatLockUserBuffer(