Btrfs: more efficient io tree navigation on wait_extent_bit
PATCH 1/1 Btrfs: more efficient io tree navigation on wait_extent_bit
If we don't reschedule use rb_next to find the next extent state instead of a full tree search, which is more efficient and safe since we didn't release the io tree's lock.
Signed-off-by Filipe David Borba Manana <[email protected]>
--- fs/btrfs/extent_io.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)
fs/btrfs/extent_io.c +5 -1
@@ -749,6 +749,7 @@ again:* our range starts */ node =tree_search (tree, start); +process_node:if (!node)break ;
@@ -769,7 +770,10 @@ again:if (start > end)break ; -cond_resched_lock (&tree->lock); +if (!cond_resched_lock (&tree->lock)) { + node =rb_next (node); + goto process_node; + } } out:spin_unlock (&tree->lock);
Signature · 1 line
1.7.10.4