- vfat now checks what CcCopyRead() returned, and return that value to the caller in case of failure

- Added a check for successful call to ReadCacheSegmentChain() in CC
See issue #1855 for more details.

svn path=/trunk/; revision=25073
This commit is contained in:
Aleksey Bragin 2006-12-06 13:29:21 +00:00
parent 9dbd8d4fbe
commit 45f26cb114
2 changed files with 10 additions and 1 deletions

View file

@ -689,7 +689,7 @@ VfatRead(PVFAT_IRP_CONTEXT IrpContext)
(BOOLEAN)(IrpContext->Flags & IRPCONTEXT_CANWAIT), Buffer,
&IrpContext->Irp->IoStatus))
{
Status = STATUS_PENDING;
Status = IrpContext->Irp->IoStatus.Status;//STATUS_PENDING;
goto ByeBye;
}
CHECKPOINT;

View file

@ -382,6 +382,15 @@ CcCopyRead (IN PFILE_OBJECT FileObject,
{
TempLength = min(max(Bcb->CacheSegmentSize, MAX_RW_LENGTH), Length);
ReadCacheSegmentChain(Bcb, ReadOffset, TempLength, Buffer);
Status = ReadCacheSegmentChain(Bcb, ReadOffset, TempLength, Buffer);
if (!NT_SUCCESS(Status))
{
IoStatus->Information = 0;
IoStatus->Status = Status;
DPRINT1("ReadCacheSegmentChain failed, Status %x\n", Status);
return FALSE;
}
ReadLength += TempLength;
Length -= TempLength;
ReadOffset += TempLength;