|
@@ -749,6 +749,7 @@ again:
|
|
* our range starts
|
|
* our range starts
|
|
*/
|
|
*/
|
|
node = tree_search(tree, start);
|
|
node = tree_search(tree, start);
|
|
|
|
+process_node:
|
|
if (!node)
|
|
if (!node)
|
|
break;
|
|
break;
|
|
|
|
|
|
@@ -769,7 +770,10 @@ again:
|
|
if (start > end)
|
|
if (start > end)
|
|
break;
|
|
break;
|
|
|
|
|
|
- cond_resched_lock(&tree->lock);
|
|
|
|
|
|
+ if (!cond_resched_lock(&tree->lock)) {
|
|
|
|
+ node = rb_next(node);
|
|
|
|
+ goto process_node;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
out:
|
|
out:
|
|
spin_unlock(&tree->lock);
|
|
spin_unlock(&tree->lock);
|