Patch "ext4: keep existing extra fields when inode expands" has been added to the 4.9-stable tree
From: <gregkh@linuxfoundation.org>
Date: 2017-06-12 09:07:40
This is a note to let you know that I've just added the patch titled
ext4: keep existing extra fields when inode expands
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-keep-existing-extra-fields-when-inode-expands.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 [off-list ref] know about it.
From 887a9730614727c4fff7cb756711b190593fc1df Mon Sep 17 00:00:00 2001
From: Konstantin Khlebnikov <redacted> Date: Sun, 21 May 2017 22:36:23 -0400 Subject: ext4: keep existing extra fields when inode expands From: Konstantin Khlebnikov <redacted> commit 887a9730614727c4fff7cb756711b190593fc1df upstream. ext4_expand_extra_isize() should clear only space between old and new size. Fixes: 6dd4ee7cab7e # v2.6.23 Signed-off-by: Konstantin Khlebnikov <redacted> Signed-off-by: Theodore Ts'o <tytso@mit.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> --- fs/ext4/inode.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c@@ -5441,8 +5441,9 @@ static int ext4_expand_extra_isize(struc /* No extended attributes present */ if (!ext4_test_inode_state(inode, EXT4_STATE_XATTR) || header->h_magic != cpu_to_le32(EXT4_XATTR_MAGIC)) { - memset((void *)raw_inode + EXT4_GOOD_OLD_INODE_SIZE, 0, - new_extra_isize); + memset((void *)raw_inode + EXT4_GOOD_OLD_INODE_SIZE + + EXT4_I(inode)->i_extra_isize, 0, + new_extra_isize - EXT4_I(inode)->i_extra_isize); EXT4_I(inode)->i_extra_isize = new_extra_isize; return 0; }
Patches currently in stable-queue which might be from khlebnikov@yandex-team.ru are queue-4.9/ext4-keep-existing-extra-fields-when-inode-expands.patch