lkml.org 
[lkml]   [2008]   [Jun]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 4/5] jbd: fix error handling for checkpoint io
    On Tue 03-06-08 13:40:25, Hidehiro Kawai wrote:
    > Subject: [PATCH 4/5] jbd: fix error handling for checkpoint io
    >
    > When a checkpointing IO fails, current JBD code doesn't check the
    > error and continue journaling. This means latest metadata can be
    > lost from both the journal and filesystem.
    >
    > This patch leaves the failed metadata blocks in the journal space
    > and aborts journaling in the case of log_do_checkpoint().
    > To achieve this, we need to do:
    >
    > 1. don't remove the failed buffer from the checkpoint list where in
    > the case of __try_to_free_cp_buf() because it may be released or
    > overwritten by a later transaction
    > 2. log_do_checkpoint() is the last chance, remove the failed buffer
    > from the checkpoint list and abort the journal
    > 3. when checkpointing fails, don't update the journal super block to
    > prevent the journaled contents from being cleaned. For safety,
    > don't update j_tail and j_tail_sequence either
    > 4. when checkpointing fails, notify this error to the ext3 layer so
    > that ext3 don't clear the needs_recovery flag, otherwise the
    > journaled contents are ignored and cleaned in the recovery phase
    > 5. if the recovery fails, keep the needs_recovery flag
    > 6. prevent cleanup_journal_tail() from being called between
    > __journal_drop_transaction() and journal_abort() (a race issue
    > between journal_flush() and __log_wait_for_space()
    >
    > Signed-off-by: Hidehiro Kawai <hidehiro.kawai.ez@hitachi.com>
    You can add:
    Acked-by: Jan Kara <jack@suse.cz>

    Honza
    --
    Jan Kara <jack@suse.cz>
    SUSE Labs, CR


    \
     
     \ /
      Last update: 2008-06-03 10:05    [W:0.025 / U:28.892 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site