lkml.org 
[lkml]   [2012]   [Oct]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[ 020/120] jbd2: dont write superblock when if its empty
    Date
    3.4-stable review patch.  If anyone has any objections, please let me know.

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

    From: Eric Sandeen <sandeen@redhat.com>

    commit eeecef0af5ea4efd763c9554cf2bd80fc4a0efd3 upstream.

    This sequence:

    # truncate --size=1g fsfile
    # mkfs.ext4 -F fsfile
    # mount -o loop,ro fsfile /mnt
    # umount /mnt
    # dmesg | tail

    results in an IO error when unmounting the RO filesystem:

    [ 318.020828] Buffer I/O error on device loop1, logical block 196608
    [ 318.027024] lost page write due to I/O error on loop1
    [ 318.032088] JBD2: Error -5 detected when updating journal superblock for loop1-8.

    This was a regression introduced by commit 24bcc89c7e7c: "jbd2: split
    updating of journal superblock and marking journal empty".

    Signed-off-by: Eric Sandeen <sandeen@redhat.com>
    Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    fs/jbd2/journal.c | 5 +++++
    1 file changed, 5 insertions(+)

    --- a/fs/jbd2/journal.c
    +++ b/fs/jbd2/journal.c
    @@ -1317,6 +1317,11 @@ static void jbd2_mark_journal_empty(jour

    BUG_ON(!mutex_is_locked(&journal->j_checkpoint_mutex));
    read_lock(&journal->j_state_lock);
    + /* Is it already empty? */
    + if (sb->s_start == 0) {
    + read_unlock(&journal->j_state_lock);
    + return;
    + }
    jbd_debug(1, "JBD2: Marking journal as empty (seq %d)\n",
    journal->j_tail_sequence);




    \
     
     \ /
      Last update: 2012-10-11 04:21    [W:4.143 / U:0.100 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site