From 9910e4f1bf2525cd931a35c63b2ecdb6bb990c14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Mon, 30 Aug 2010 19:41:08 +0000 Subject: [PATCH] * The parent of an IOOperation cannot be NULL for completed operations. * This fixes CID 1507. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38458 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../device_manager/IOSchedulerSimple.cpp | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/system/kernel/device_manager/IOSchedulerSimple.cpp b/src/system/kernel/device_manager/IOSchedulerSimple.cpp index c28ade7905..73fdd47609 100644 --- a/src/system/kernel/device_manager/IOSchedulerSimple.cpp +++ b/src/system/kernel/device_manager/IOSchedulerSimple.cpp @@ -1,6 +1,6 @@ /* * Copyright 2008-2010, Ingo Weinhold, ingo_weinhold@gmx.de. - * Copyright 2004-2009, Axel Dörfler, axeld@pinc-software.de. + * Copyright 2004-2010, Axel Dörfler, axeld@pinc-software.de. * Distributed under the terms of the MIT License. */ @@ -353,15 +353,14 @@ IOSchedulerSimple::_Finisher() // notify request and remove operation IORequest* request = operation->Parent(); - if (request != NULL) { - generic_size_t operationOffset = operation->OriginalOffset() - - request->Offset(); - request->OperationFinished(operation, operation->Status(), - operation->TransferredBytes() < operation->OriginalLength(), - operation->Status() == B_OK - ? operationOffset + operation->OriginalLength() - : operationOffset); - } + + generic_size_t operationOffset + = operation->OriginalOffset() - request->Offset(); + request->OperationFinished(operation, operation->Status(), + operation->TransferredBytes() < operation->OriginalLength(), + operation->Status() == B_OK + ? operationOffset + operation->OriginalLength() + : operationOffset); // recycle the operation MutexLocker _(fLock);