Author: axeld Date: 2010-08-30 21:41:08 +0200 (Mon, 30 Aug 2010) New Revision: 38458 Changeset: http://dev.haiku-os.org/changeset/38458 Modified: haiku/trunk/src/system/kernel/device_manager/IOSchedulerSimple.cpp Log: * The parent of an IOOperation cannot be NULL for completed operations. * This fixes CID 1507. Modified: haiku/trunk/src/system/kernel/device_manager/IOSchedulerSimple.cpp =================================================================== --- haiku/trunk/src/system/kernel/device_manager/IOSchedulerSimple.cpp 2010-08-30 18:57:17 UTC (rev 38457) +++ haiku/trunk/src/system/kernel/device_manager/IOSchedulerSimple.cpp 2010-08-30 19:41:08 UTC (rev 38458) @@ -1,6 +1,6 @@ /* * Copyright 2008-2010, Ingo Weinhold, ingo_weinhold@xxxxxxx - * Copyright 2004-2009, Axel Dörfler, axeld@xxxxxxxxxxxxxxxxx + * Copyright 2004-2010, Axel Dörfler, axeld@xxxxxxxxxxxxxxxxx * Distributed under the terms of the MIT License. */ @@ -353,16 +353,15 @@ // 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); if (fDMAResource != NULL)