Patch "ext4: fix inode checksum calculation problem if i_extra_size is small" has been added to the 4.9-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
ext4: fix inode checksum calculation problem if i_extra_size is small
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
ext4-fix-inode-checksum-calculation-problem-if-i_extra_size-is-small.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
05ac5aa18abd7db341e54df4ae2b4c98ea0e43b7Mon Sep 17 00:00:00 2001
From: Daeho Jeong <[email protected]>
Date: Thu, 1 Dec 2016 11:49:12 -0500
Subject: ext4: fix inode checksum calculation problem if i_extra_size is small
From: Daeho Jeong <[email protected]>
commit 05ac5aa18abd7db341e54df4ae2b4c98ea0e43b7 upstream.
We've fixed the race condition problem in calculating ext4 checksum value in commit b47820edd163 ("ext4: avoid modifying checksum fields directly during checksum veficationon"). However, by this change, when calculating the checksum value of inode whose i_extra_size is less than 4, we couldn't calculate the checksum value in a proper way. This problem was found and reported by Nix, Thank you.
--- fs/ext4/inode.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-)
fs/ext4/inode.c +2 -3
@@ -71,10 +71,9 @@ static __u32 ext4_inode_csum(struct inod csum =ext4_chksum (sbi, csum, (__u8 *)&dummy_csum, csum_size); offset += csum_size; - csum =ext4_chksum (sbi, csum, (__u8 *)raw + offset, -EXT4_INODE_SIZE (inode->i_sb) - - offset); } + csum =ext4_chksum (sbi, csum, (__u8 *)raw + offset, +EXT4_INODE_SIZE (inode->i_sb) - offset); }return csum;
Patches currently in stable-queue which might be from [email protected] are
queue-4.9/ext4-fix-inode-checksum-calculation-problem-if-i_extra_size-is-small.patch