IORequest: Fix computation of parent-relative transfer offsets.
The local transferEndOffset should be relative to the parent (us),
not to the underlying filesystem. We thus need to subtract our
own offset from the operation's offset.
This fixes a regression from be8080575a.
Errors transferring data should now be properly reported in more cases.
This commit is contained in:
@@ -1052,7 +1052,7 @@ IORequest::OperationFinished(IOOperation* operation)
|
||||
const bool partialTransfer =
|
||||
(operation->TransferredBytes() < operation->OriginalLength());
|
||||
const generic_size_t transferEndOffset =
|
||||
(operation->OriginalOffset() + operation->TransferredBytes());
|
||||
(operation->OriginalOffset() - Offset()) + operation->TransferredBytes();
|
||||
|
||||
if (status != B_OK || partialTransfer) {
|
||||
if (fTransferSize > transferEndOffset)
|
||||
|
||||
Reference in New Issue
Block a user