Messages in this thread Patch in this message | | | Date | Thu, 05 Jun 2008 19:43:01 +1000 | From | npiggin@suse ... | Subject | [patch 1/7] mm: readahead scan lockless |
| |
radix_tree_next_hole is implemented as a series of radix_tree_lookup()s. So it can be called locklessly, under rcu_read_lock().
Signed-off-by: Nick Piggin <npiggin@suse.de> --- Index: linux-2.6/mm/readahead.c =================================================================== --- linux-2.6.orig/mm/readahead.c +++ linux-2.6/mm/readahead.c @@ -382,9 +382,9 @@ ondemand_readahead(struct address_space if (hit_readahead_marker) { pgoff_t start; - read_lock_irq(&mapping->tree_lock); - start = radix_tree_next_hole(&mapping->page_tree, offset, max+1); - read_unlock_irq(&mapping->tree_lock); + rcu_read_lock(); + start = radix_tree_next_hole(&mapping->page_tree, offset,max+1); + rcu_read_unlock(); if (!start || start - offset > max) return 0; --
| |