lkml.org 
[lkml]   [2008]   [Jan]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    SubjectRe: task blocked in sync_buffer from ext3_free_branches
    From
    Date
    Actually this appears to be the bug that Jens fixed with this patch,
    and with that patch my system seems fine as well:

    diff --git a/block/as-iosched.c b/block/as-iosched.c
    index b201d16..9603684 100644
    --- a/block/as-iosched.c
    +++ b/block/as-iosched.c
    @@ -1275,9 +1275,13 @@ static void as_merged_requests(struct request_queue *q, struct request *req,
    * Don't copy here but swap, because when anext is
    * removed below, it must contain the unused context
    */
    - double_spin_lock(&rioc->lock, &nioc->lock, rioc < nioc);
    - swap_io_context(&rioc, &nioc);
    - double_spin_unlock(&rioc->lock, &nioc->lock, rioc < nioc);
    + if (rioc != nioc) {
    + double_spin_lock(&rioc->lock, &nioc->lock,
    + rioc < nioc);
    + swap_io_context(&rioc, &nioc);
    + double_spin_unlock(&rioc->lock, &nioc->lock,
    + rioc < nioc);
    + }
    }
    }



    \
     
     \ /
      Last update: 2008-01-30 01:53    [W:0.042 / U:29.832 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site