lkml.org 
[lkml]   [2019]   [Apr]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.19 044/187] jbd2: fix invalid descriptor block checksum
    Date
    4.19-stable review patch.  If anyone has any objections, please let me know.

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

    [ Upstream commit 6e876c3dd205d30b0db6850e97a03d75457df007 ]

    In jbd2_journal_commit_transaction(), if we are in abort mode,
    we may flush the buffer without setting descriptor block checksum
    by goto start_journal_io. Then fs is mounted,
    jbd2_descriptor_block_csum_verify() failed.

    [ 271.379811] EXT4-fs (vdd): shut down requested (2)
    [ 271.381827] Aborting journal on device vdd-8.
    [ 271.597136] JBD2: Invalid checksum recovering block 22199 in log
    [ 271.598023] JBD2: recovery failed
    [ 271.598484] EXT4-fs (vdd): error loading journal

    Fix this problem by keep setting descriptor block checksum if the
    descriptor buffer is not NULL.

    This checksum problem can be reproduced by xfstests generic/388.

    Signed-off-by: luojiajun <luojiajun3@huawei.com>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Reviewed-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    fs/jbd2/commit.c | 6 ++++--
    1 file changed, 4 insertions(+), 2 deletions(-)

    diff --git a/fs/jbd2/commit.c b/fs/jbd2/commit.c
    index 150cc030b4d7..65ea0355a4f6 100644
    --- a/fs/jbd2/commit.c
    +++ b/fs/jbd2/commit.c
    @@ -691,9 +691,11 @@ void jbd2_journal_commit_transaction(journal_t *journal)
    the last tag we set up. */

    tag->t_flags |= cpu_to_be16(JBD2_FLAG_LAST_TAG);
    -
    - jbd2_descriptor_block_csum_set(journal, descriptor);
    start_journal_io:
    + if (descriptor)
    + jbd2_descriptor_block_csum_set(journal,
    + descriptor);
    +
    for (i = 0; i < bufs; i++) {
    struct buffer_head *bh = wbuf[i];
    /*
    --
    2.19.1


    \
     
     \ /
      Last update: 2019-04-04 11:02    [W:4.104 / U:0.144 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site