lkml.org 
[lkml]   [2010]   [Mar]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[094/156] nilfs2: fix hang-up of cleaner after log writer returned with error
    2.6.33-stable review patch.  If anyone has any objections, please let us know.

    ------------------

    From: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>

    commit 110d735a0ae69bdd11af9acb6ea3b979137eb118 upstream.

    According to the report from Andreas Beckmann (Message-ID:
    <4BA54677.3090902@abeckmann.de>), nilfs in 2.6.33 kernel got stuck
    after a disk full error.

    This turned out to be a regression by log writer updates merged at
    kernel 2.6.33. nilfs_segctor_abort_construction, which is a cleanup
    function for erroneous cases, was skipping writeback completion for
    some logs.

    This fixes the bug and would resolve the hang issue.

    Reported-by: Andreas Beckmann <debian@abeckmann.de>
    Signed-off-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
    Tested-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

    ---
    fs/nilfs2/segment.c | 3 +--
    1 file changed, 1 insertion(+), 2 deletions(-)

    --- a/fs/nilfs2/segment.c
    +++ b/fs/nilfs2/segment.c
    @@ -1902,8 +1902,7 @@ static void nilfs_segctor_abort_construc

    list_splice_tail_init(&sci->sc_write_logs, &logs);
    ret = nilfs_wait_on_logs(&logs);
    - if (ret)
    - nilfs_abort_logs(&logs, NULL, sci->sc_super_root, ret);
    + nilfs_abort_logs(&logs, NULL, sci->sc_super_root, ret ? : err);

    list_splice_tail_init(&sci->sc_segbufs, &logs);
    nilfs_cancel_segusage(&logs, nilfs->ns_sufile);



    \
     
     \ /
      Last update: 2010-03-31 01:39    [W:3.320 / U:0.184 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site