[haiku-commits] r38458 - haiku/trunk/src/system/kernel/device_manager

  • From: axeld@xxxxxxxxxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Mon, 30 Aug 2010 21:41:08 +0200 (CEST)

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)


Other related posts:

  • » [haiku-commits] r38458 - haiku/trunk/src/system/kernel/device_manager - axeld