lkml.org 
[lkml]   [2008]   [Jun]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    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;
    --



    \
     
     \ /
      Last update: 2008-06-05 12:05    [W:3.384 / U:1.040 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site