mirror of
https://github.com/reactos/reactos.git
synced 2025-02-23 08:55:19 +00:00
[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:
parent
22106e6ce1
commit
89eca90722
4 changed files with 8 additions and 8 deletions
|
@ -419,7 +419,7 @@ DoQuery(
|
||||||
ProbeForWrite(IrpContext->Irp->UserBuffer, BufferLength, 1);
|
ProbeForWrite(IrpContext->Irp->UserBuffer, BufferLength, 1);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
Buffer = VfatGetUserBuffer(IrpContext->Irp);
|
Buffer = VfatGetUserBuffer(IrpContext->Irp, FALSE);
|
||||||
|
|
||||||
if (!ExAcquireResourceSharedLite(&pFcb->MainResource,
|
if (!ExAcquireResourceSharedLite(&pFcb->MainResource,
|
||||||
(BOOLEAN)(IrpContext->Flags & IRPCONTEXT_CANWAIT)))
|
(BOOLEAN)(IrpContext->Flags & IRPCONTEXT_CANWAIT)))
|
||||||
|
|
|
@ -327,15 +327,14 @@ VfatQueueRequest(
|
||||||
|
|
||||||
PVOID
|
PVOID
|
||||||
VfatGetUserBuffer(
|
VfatGetUserBuffer(
|
||||||
IN PIRP Irp)
|
IN PIRP Irp,
|
||||||
|
IN BOOLEAN Paging)
|
||||||
{
|
{
|
||||||
ASSERT(Irp);
|
ASSERT(Irp);
|
||||||
|
|
||||||
if (Irp->MdlAddress)
|
if (Irp->MdlAddress)
|
||||||
{
|
{
|
||||||
/* This call may be in the paging path, so use maximum priority */
|
return MmGetSystemAddressForMdlSafe(Irp->MdlAddress, (Paging ? HighPagePriority : NormalPagePriority));
|
||||||
/* FIXME: call with normal priority in the non-paging path */
|
|
||||||
return MmGetSystemAddressForMdlSafe(Irp->MdlAddress, HighPagePriority);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -655,7 +655,7 @@ VfatRead(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Buffer = VfatGetUserBuffer(IrpContext->Irp);
|
Buffer = VfatGetUserBuffer(IrpContext->Irp, IrpContext->Irp->Flags & IRP_PAGING_IO);
|
||||||
if (!Buffer)
|
if (!Buffer)
|
||||||
{
|
{
|
||||||
Status = STATUS_INVALID_USER_BUFFER;
|
Status = STATUS_INVALID_USER_BUFFER;
|
||||||
|
@ -926,7 +926,7 @@ VfatWrite(
|
||||||
|
|
||||||
OldFileSize = Fcb->RFCB.FileSize;
|
OldFileSize = Fcb->RFCB.FileSize;
|
||||||
|
|
||||||
Buffer = VfatGetUserBuffer(IrpContext->Irp);
|
Buffer = VfatGetUserBuffer(IrpContext->Irp, IrpContext->Irp->Flags & IRP_PAGING_IO);
|
||||||
if (!Buffer)
|
if (!Buffer)
|
||||||
{
|
{
|
||||||
Status = STATUS_INVALID_USER_BUFFER;
|
Status = STATUS_INVALID_USER_BUFFER;
|
||||||
|
|
|
@ -928,7 +928,8 @@ VfatBuildRequest(
|
||||||
|
|
||||||
PVOID
|
PVOID
|
||||||
VfatGetUserBuffer(
|
VfatGetUserBuffer(
|
||||||
IN PIRP);
|
IN PIRP,
|
||||||
|
IN BOOLEAN Paging);
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
VfatLockUserBuffer(
|
VfatLockUserBuffer(
|
||||||
|
|
Loading…
Reference in a new issue