]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 23 Nov 2020 09:12:57 +0000 (10:12 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 23 Nov 2020 09:12:57 +0000 (10:12 +0100)
added patches:
ext4-fix-bogus-warning-in-ext4_update_dx_flag.patch

queue-4.4/ext4-fix-bogus-warning-in-ext4_update_dx_flag.patch [new file with mode: 0644]
queue-4.4/series

diff --git a/queue-4.4/ext4-fix-bogus-warning-in-ext4_update_dx_flag.patch b/queue-4.4/ext4-fix-bogus-warning-in-ext4_update_dx_flag.patch
new file mode 100644 (file)
index 0000000..240d56d
--- /dev/null
@@ -0,0 +1,40 @@
+From f902b216501094495ff75834035656e8119c537f Mon Sep 17 00:00:00 2001
+From: Jan Kara <jack@suse.cz>
+Date: Wed, 18 Nov 2020 16:30:32 +0100
+Subject: ext4: fix bogus warning in ext4_update_dx_flag()
+
+From: Jan Kara <jack@suse.cz>
+
+commit f902b216501094495ff75834035656e8119c537f upstream.
+
+The idea of the warning in ext4_update_dx_flag() is that we should warn
+when we are clearing EXT4_INODE_INDEX on a filesystem with metadata
+checksums enabled since after clearing the flag, checksums for internal
+htree nodes will become invalid. So there's no need to warn (or actually
+do anything) when EXT4_INODE_INDEX is not set.
+
+Link: https://lore.kernel.org/r/20201118153032.17281-1-jack@suse.cz
+Fixes: 48a34311953d ("ext4: fix checksum errors with indexed dirs")
+Reported-by: Eric Biggers <ebiggers@kernel.org>
+Reviewed-by: Eric Biggers <ebiggers@google.com>
+Signed-off-by: Jan Kara <jack@suse.cz>
+Signed-off-by: Theodore Ts'o <tytso@mit.edu>
+Cc: stable@kernel.org
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ fs/ext4/ext4.h |    3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/fs/ext4/ext4.h
++++ b/fs/ext4/ext4.h
+@@ -2398,7 +2398,8 @@ int ext4_insert_dentry(struct inode *dir
+                      struct ext4_filename *fname);
+ static inline void ext4_update_dx_flag(struct inode *inode)
+ {
+-      if (!ext4_has_feature_dir_index(inode->i_sb)) {
++      if (!ext4_has_feature_dir_index(inode->i_sb) &&
++          ext4_test_inode_flag(inode, EXT4_INODE_INDEX)) {
+               /* ext4_iget() should have caught this... */
+               WARN_ON_ONCE(ext4_has_feature_metadata_csum(inode->i_sb));
+               ext4_clear_inode_flag(inode, EXT4_INODE_INDEX);
index e2684f0f7e44becf9c5ecbee688f2016e83c39d6..cd77b93139ac56b81d5347c2d1704d5bfdca9f6b 100644 (file)
@@ -28,3 +28,4 @@ alsa-ctl-fix-error-path-at-adding-user-defined-element-set.patch
 alsa-mixart-fix-mutex-deadlock.patch
 tty-serial-imx-keep-console-clocks-always-on.patch
 efivarfs-fix-memory-leak-in-efivarfs_create.patch
+ext4-fix-bogus-warning-in-ext4_update_dx_flag.patch