lkml.org 
[lkml]   [2008]   [Mar]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch 70/76] jbd2: correctly unescape journal data blocks
    -stable review patch.  If anyone has any objections, please let us know.
    ---------------------

    From: Duane Griffin <duaneg@dghda.com>

    Fix a long-standing typo (predating git) that will cause data corruption if a
    journal data block needs unescaping. At the moment the wrong buffer head's
    data is being unescaped.

    To test this case mount a filesystem with data=journal, start creating and
    deleting a bunch of files containing only JBD2_MAGIC_NUMBER (0xc03b3998), then
    pull the plug on the device. Without this patch the files will contain zeros
    instead of the correct data after recovery.

    Signed-off-by: Duane Griffin <duaneg@dghda.com>
    Acked-by: Jan Kara <jack@suse.cz>
    Cc: <linux-ext4@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Chris Wright <chrisw@sous-sol.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    ---
    fs/jbd2/recovery.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    --- a/fs/jbd2/recovery.c
    +++ b/fs/jbd2/recovery.c
    @@ -488,7 +488,7 @@ static int do_one_pass(journal_t *journa
    memcpy(nbh->b_data, obh->b_data,
    journal->j_blocksize);
    if (flags & JBD2_FLAG_ESCAPE) {
    - *((__be32 *)bh->b_data) =
    + *((__be32 *)nbh->b_data) =
    cpu_to_be32(JBD2_MAGIC_NUMBER);
    }

    --


    \
     
     \ /
      Last update: 2008-03-22 00:17    [W:3.558 / U:0.392 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site