This causes 2 other patches to be dropped as well, and some refreshed.
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
extern int ext4_update_rocompat_feature(handle_t *handle,
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
-@@ -5324,7 +5324,6 @@ static int ext4_do_update_inode(handle_t
+@@ -5320,7 +5320,6 @@ static int ext4_do_update_inode(handle_t
err = ext4_journal_get_write_access(handle, EXT4_SB(sb)->s_sbh);
if (err)
goto out_brelse;
+++ /dev/null
-From 170417c8c7bb2cbbdd949bf5c443c0c8f24a203b Mon Sep 17 00:00:00 2001
-From: Theodore Ts'o <tytso@mit.edu>
-Date: Wed, 15 May 2019 00:51:19 -0400
-Subject: ext4: fix block validity checks for journal inodes using indirect blocks
-
-From: Theodore Ts'o <tytso@mit.edu>
-
-commit 170417c8c7bb2cbbdd949bf5c443c0c8f24a203b upstream.
-
-Commit 345c0dbf3a30 ("ext4: protect journal inode's blocks using
-block_validity") failed to add an exception for the journal inode in
-ext4_check_blockref(), which is the function used by ext4_get_branch()
-for indirect blocks. This caused attempts to read from the ext3-style
-journals to fail with:
-
-[ 848.968550] EXT4-fs error (device sdb7): ext4_get_branch:171: inode #8: block 30343695: comm jbd2/sdb7-8: invalid block
-
-Fix this by adding the missing exception check.
-
-Fixes: 345c0dbf3a30 ("ext4: protect journal inode's blocks using block_validity")
-Reported-by: Arthur Marsh <arthur.marsh@internode.on.net>
-Signed-off-by: Theodore Ts'o <tytso@mit.edu>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- fs/ext4/block_validity.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
---- a/fs/ext4/block_validity.c
-+++ b/fs/ext4/block_validity.c
-@@ -276,6 +276,11 @@ int ext4_check_blockref(const char *func
- __le32 *bref = p;
- unsigned int blk;
-
-+ if (ext4_has_feature_journal(inode->i_sb) &&
-+ (inode->i_ino ==
-+ le32_to_cpu(EXT4_SB(inode->i_sb)->s_es->s_journal_inum)))
-+ return 0;
-+
- while (bref < p+max) {
- blk = le32_to_cpu(*bref++);
- if (blk &&
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
-@@ -5975,7 +5975,7 @@ int ext4_expand_extra_isize(struct inode
+@@ -5971,7 +5971,7 @@ int ext4_expand_extra_isize(struct inode
ext4_write_lock_xattr(inode, &no_expand);
+++ /dev/null
-From 345c0dbf3a30872d9b204db96b5857cd00808cae Mon Sep 17 00:00:00 2001
-From: Theodore Ts'o <tytso@mit.edu>
-Date: Tue, 9 Apr 2019 23:37:08 -0400
-Subject: ext4: protect journal inode's blocks using block_validity
-
-From: Theodore Ts'o <tytso@mit.edu>
-
-commit 345c0dbf3a30872d9b204db96b5857cd00808cae upstream.
-
-Add the blocks which belong to the journal inode to block_validity's
-system zone so attempts to deallocate or overwrite the journal due a
-corrupted file system where the journal blocks are also claimed by
-another inode.
-
-Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=202879
-Signed-off-by: Theodore Ts'o <tytso@mit.edu>
-Cc: stable@kernel.org
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- fs/ext4/block_validity.c | 48 +++++++++++++++++++++++++++++++++++++++++++++++
- fs/ext4/inode.c | 4 +++
- 2 files changed, 52 insertions(+)
-
---- a/fs/ext4/block_validity.c
-+++ b/fs/ext4/block_validity.c
-@@ -137,6 +137,48 @@ static void debug_print_tree(struct ext4
- printk(KERN_CONT "\n");
- }
-
-+static int ext4_protect_reserved_inode(struct super_block *sb, u32 ino)
-+{
-+ struct inode *inode;
-+ struct ext4_sb_info *sbi = EXT4_SB(sb);
-+ struct ext4_map_blocks map;
-+ u32 i = 0, err = 0, num, n;
-+
-+ if ((ino < EXT4_ROOT_INO) ||
-+ (ino > le32_to_cpu(sbi->s_es->s_inodes_count)))
-+ return -EINVAL;
-+ inode = ext4_iget(sb, ino, EXT4_IGET_SPECIAL);
-+ if (IS_ERR(inode))
-+ return PTR_ERR(inode);
-+ num = (inode->i_size + sb->s_blocksize - 1) >> sb->s_blocksize_bits;
-+ while (i < num) {
-+ map.m_lblk = i;
-+ map.m_len = num - i;
-+ n = ext4_map_blocks(NULL, inode, &map, 0);
-+ if (n < 0) {
-+ err = n;
-+ break;
-+ }
-+ if (n == 0) {
-+ i++;
-+ } else {
-+ if (!ext4_data_block_valid(sbi, map.m_pblk, n)) {
-+ ext4_error(sb, "blocks %llu-%llu from inode %u "
-+ "overlap system zone", map.m_pblk,
-+ map.m_pblk + map.m_len - 1, ino);
-+ err = -EFSCORRUPTED;
-+ break;
-+ }
-+ err = add_system_zone(sbi, map.m_pblk, n);
-+ if (err < 0)
-+ break;
-+ i += n;
-+ }
-+ }
-+ iput(inode);
-+ return err;
-+}
-+
- int ext4_setup_system_zone(struct super_block *sb)
- {
- ext4_group_t ngroups = ext4_get_groups_count(sb);
-@@ -171,6 +213,12 @@ int ext4_setup_system_zone(struct super_
- if (ret)
- return ret;
- }
-+ if (ext4_has_feature_journal(sb) && sbi->s_es->s_journal_inum) {
-+ ret = ext4_protect_reserved_inode(sb,
-+ le32_to_cpu(sbi->s_es->s_journal_inum));
-+ if (ret)
-+ return ret;
-+ }
-
- if (test_opt(sb, DEBUG))
- debug_print_tree(sbi);
---- a/fs/ext4/inode.c
-+++ b/fs/ext4/inode.c
-@@ -399,6 +399,10 @@ static int __check_block_validity(struct
- unsigned int line,
- struct ext4_map_blocks *map)
- {
-+ if (ext4_has_feature_journal(inode->i_sb) &&
-+ (inode->i_ino ==
-+ le32_to_cpu(EXT4_SB(inode->i_sb)->s_es->s_journal_inum)))
-+ return 0;
- if (!ext4_data_block_valid(EXT4_SB(inode->i_sb), map->m_pblk,
- map->m_len)) {
- ext4_error_inode(inode, func, line, map->m_pblk,
+++ /dev/null
-From fbbbbd2f28aec991f3fbc248df211550fbdfd58c Mon Sep 17 00:00:00 2001
-From: Colin Ian King <colin.king@canonical.com>
-Date: Fri, 10 May 2019 22:06:38 -0400
-Subject: ext4: unsigned int compared against zero
-
-From: Colin Ian King <colin.king@canonical.com>
-
-commit fbbbbd2f28aec991f3fbc248df211550fbdfd58c upstream.
-
-There are two cases where u32 variables n and err are being checked
-for less than zero error values, the checks is always false because
-the variables are not signed. Fix this by making the variables ints.
-
-Addresses-Coverity: ("Unsigned compared against 0")
-Fixes: 345c0dbf3a30 ("ext4: protect journal inode's blocks using block_validity")
-Signed-off-by: Colin Ian King <colin.king@canonical.com>
-Signed-off-by: Theodore Ts'o <tytso@mit.edu>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- fs/ext4/block_validity.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
---- a/fs/ext4/block_validity.c
-+++ b/fs/ext4/block_validity.c
-@@ -142,7 +142,8 @@ static int ext4_protect_reserved_inode(s
- struct inode *inode;
- struct ext4_sb_info *sbi = EXT4_SB(sb);
- struct ext4_map_blocks map;
-- u32 i = 0, err = 0, num, n;
-+ u32 i = 0, num;
-+ int err = 0, n;
-
- if ((ino < EXT4_ROOT_INO) ||
- (ino > le32_to_cpu(sbi->s_es->s_inodes_count)))
tty-vt-fix-write-write-race-in-ioctl-kdskbsent-handler.patch
jbd2-check-superblock-mapped-prior-to-committing.patch
ext4-make-sanity-check-in-mballoc-more-strict.patch
-ext4-protect-journal-inode-s-blocks-using-block_validity.patch
ext4-ignore-e_value_offs-for-xattrs-with-value-in-ea-inode.patch
ext4-avoid-drop-reference-to-iloc.bh-twice.patch
ext4-fix-use-after-free-race-with-debug_want_extra_isize.patch
pstore-centralize-init-exit-routines.patch
pstore-allocate-compression-during-late_initcall.patch
pstore-refactor-compression-initialization.patch
-ext4-unsigned-int-compared-against-zero.patch
-ext4-fix-block-validity-checks-for-journal-inodes-using-indirect-blocks.patch
ext4-fix-compile-error-when-using-buffer_trace.patch
ext4-don-t-update-s_rev_level-if-not-required.patch
extern int ext4_update_rocompat_feature(handle_t *handle,
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
-@@ -5355,7 +5355,6 @@ static int ext4_do_update_inode(handle_t
+@@ -5351,7 +5351,6 @@ static int ext4_do_update_inode(handle_t
err = ext4_journal_get_write_access(handle, EXT4_SB(sb)->s_sbh);
if (err)
goto out_brelse;
+++ /dev/null
-From 170417c8c7bb2cbbdd949bf5c443c0c8f24a203b Mon Sep 17 00:00:00 2001
-From: Theodore Ts'o <tytso@mit.edu>
-Date: Wed, 15 May 2019 00:51:19 -0400
-Subject: ext4: fix block validity checks for journal inodes using indirect blocks
-
-From: Theodore Ts'o <tytso@mit.edu>
-
-commit 170417c8c7bb2cbbdd949bf5c443c0c8f24a203b upstream.
-
-Commit 345c0dbf3a30 ("ext4: protect journal inode's blocks using
-block_validity") failed to add an exception for the journal inode in
-ext4_check_blockref(), which is the function used by ext4_get_branch()
-for indirect blocks. This caused attempts to read from the ext3-style
-journals to fail with:
-
-[ 848.968550] EXT4-fs error (device sdb7): ext4_get_branch:171: inode #8: block 30343695: comm jbd2/sdb7-8: invalid block
-
-Fix this by adding the missing exception check.
-
-Fixes: 345c0dbf3a30 ("ext4: protect journal inode's blocks using block_validity")
-Reported-by: Arthur Marsh <arthur.marsh@internode.on.net>
-Signed-off-by: Theodore Ts'o <tytso@mit.edu>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- fs/ext4/block_validity.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
---- a/fs/ext4/block_validity.c
-+++ b/fs/ext4/block_validity.c
-@@ -276,6 +276,11 @@ int ext4_check_blockref(const char *func
- __le32 *bref = p;
- unsigned int blk;
-
-+ if (ext4_has_feature_journal(inode->i_sb) &&
-+ (inode->i_ino ==
-+ le32_to_cpu(EXT4_SB(inode->i_sb)->s_es->s_journal_inum)))
-+ return 0;
-+
- while (bref < p+max) {
- blk = le32_to_cpu(*bref++);
- if (blk &&
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
-@@ -6006,7 +6006,7 @@ int ext4_expand_extra_isize(struct inode
+@@ -6002,7 +6002,7 @@ int ext4_expand_extra_isize(struct inode
ext4_write_lock_xattr(inode, &no_expand);
+++ /dev/null
-From 345c0dbf3a30872d9b204db96b5857cd00808cae Mon Sep 17 00:00:00 2001
-From: Theodore Ts'o <tytso@mit.edu>
-Date: Tue, 9 Apr 2019 23:37:08 -0400
-Subject: ext4: protect journal inode's blocks using block_validity
-
-From: Theodore Ts'o <tytso@mit.edu>
-
-commit 345c0dbf3a30872d9b204db96b5857cd00808cae upstream.
-
-Add the blocks which belong to the journal inode to block_validity's
-system zone so attempts to deallocate or overwrite the journal due a
-corrupted file system where the journal blocks are also claimed by
-another inode.
-
-Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=202879
-Signed-off-by: Theodore Ts'o <tytso@mit.edu>
-Cc: stable@kernel.org
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- fs/ext4/block_validity.c | 48 +++++++++++++++++++++++++++++++++++++++++++++++
- fs/ext4/inode.c | 4 +++
- 2 files changed, 52 insertions(+)
-
---- a/fs/ext4/block_validity.c
-+++ b/fs/ext4/block_validity.c
-@@ -137,6 +137,48 @@ static void debug_print_tree(struct ext4
- printk(KERN_CONT "\n");
- }
-
-+static int ext4_protect_reserved_inode(struct super_block *sb, u32 ino)
-+{
-+ struct inode *inode;
-+ struct ext4_sb_info *sbi = EXT4_SB(sb);
-+ struct ext4_map_blocks map;
-+ u32 i = 0, err = 0, num, n;
-+
-+ if ((ino < EXT4_ROOT_INO) ||
-+ (ino > le32_to_cpu(sbi->s_es->s_inodes_count)))
-+ return -EINVAL;
-+ inode = ext4_iget(sb, ino, EXT4_IGET_SPECIAL);
-+ if (IS_ERR(inode))
-+ return PTR_ERR(inode);
-+ num = (inode->i_size + sb->s_blocksize - 1) >> sb->s_blocksize_bits;
-+ while (i < num) {
-+ map.m_lblk = i;
-+ map.m_len = num - i;
-+ n = ext4_map_blocks(NULL, inode, &map, 0);
-+ if (n < 0) {
-+ err = n;
-+ break;
-+ }
-+ if (n == 0) {
-+ i++;
-+ } else {
-+ if (!ext4_data_block_valid(sbi, map.m_pblk, n)) {
-+ ext4_error(sb, "blocks %llu-%llu from inode %u "
-+ "overlap system zone", map.m_pblk,
-+ map.m_pblk + map.m_len - 1, ino);
-+ err = -EFSCORRUPTED;
-+ break;
-+ }
-+ err = add_system_zone(sbi, map.m_pblk, n);
-+ if (err < 0)
-+ break;
-+ i += n;
-+ }
-+ }
-+ iput(inode);
-+ return err;
-+}
-+
- int ext4_setup_system_zone(struct super_block *sb)
- {
- ext4_group_t ngroups = ext4_get_groups_count(sb);
-@@ -171,6 +213,12 @@ int ext4_setup_system_zone(struct super_
- if (ret)
- return ret;
- }
-+ if (ext4_has_feature_journal(sb) && sbi->s_es->s_journal_inum) {
-+ ret = ext4_protect_reserved_inode(sb,
-+ le32_to_cpu(sbi->s_es->s_journal_inum));
-+ if (ret)
-+ return ret;
-+ }
-
- if (test_opt(sb, DEBUG))
- debug_print_tree(sbi);
---- a/fs/ext4/inode.c
-+++ b/fs/ext4/inode.c
-@@ -399,6 +399,10 @@ static int __check_block_validity(struct
- unsigned int line,
- struct ext4_map_blocks *map)
- {
-+ if (ext4_has_feature_journal(inode->i_sb) &&
-+ (inode->i_ino ==
-+ le32_to_cpu(EXT4_SB(inode->i_sb)->s_es->s_journal_inum)))
-+ return 0;
- if (!ext4_data_block_valid(EXT4_SB(inode->i_sb), map->m_pblk,
- map->m_len)) {
- ext4_error_inode(inode, func, line, map->m_pblk,
+++ /dev/null
-From fbbbbd2f28aec991f3fbc248df211550fbdfd58c Mon Sep 17 00:00:00 2001
-From: Colin Ian King <colin.king@canonical.com>
-Date: Fri, 10 May 2019 22:06:38 -0400
-Subject: ext4: unsigned int compared against zero
-
-From: Colin Ian King <colin.king@canonical.com>
-
-commit fbbbbd2f28aec991f3fbc248df211550fbdfd58c upstream.
-
-There are two cases where u32 variables n and err are being checked
-for less than zero error values, the checks is always false because
-the variables are not signed. Fix this by making the variables ints.
-
-Addresses-Coverity: ("Unsigned compared against 0")
-Fixes: 345c0dbf3a30 ("ext4: protect journal inode's blocks using block_validity")
-Signed-off-by: Colin Ian King <colin.king@canonical.com>
-Signed-off-by: Theodore Ts'o <tytso@mit.edu>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- fs/ext4/block_validity.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
---- a/fs/ext4/block_validity.c
-+++ b/fs/ext4/block_validity.c
-@@ -142,7 +142,8 @@ static int ext4_protect_reserved_inode(s
- struct inode *inode;
- struct ext4_sb_info *sbi = EXT4_SB(sb);
- struct ext4_map_blocks map;
-- u32 i = 0, err = 0, num, n;
-+ u32 i = 0, num;
-+ int err = 0, n;
-
- if ((ino < EXT4_ROOT_INO) ||
- (ino > le32_to_cpu(sbi->s_es->s_inodes_count)))
tty-vt-fix-write-write-race-in-ioctl-kdskbsent-handler.patch
jbd2-check-superblock-mapped-prior-to-committing.patch
ext4-make-sanity-check-in-mballoc-more-strict.patch
-ext4-protect-journal-inode-s-blocks-using-block_validity.patch
ext4-ignore-e_value_offs-for-xattrs-with-value-in-ea-inode.patch
ext4-avoid-drop-reference-to-iloc.bh-twice.patch
ext4-fix-use-after-free-race-with-debug_want_extra_isize.patch
iov_iter-optimize-page_copy_sane.patch
s390-mm-make-the-pxd_offset-functions-more-robust.patch
s390-mm-convert-to-the-generic-get_user_pages_fast-code.patch
-ext4-unsigned-int-compared-against-zero.patch
-ext4-fix-block-validity-checks-for-journal-inodes-using-indirect-blocks.patch
ext4-fix-compile-error-when-using-buffer_trace.patch
ext4-don-t-update-s_rev_level-if-not-required.patch
+++ /dev/null
-From 170417c8c7bb2cbbdd949bf5c443c0c8f24a203b Mon Sep 17 00:00:00 2001
-From: Theodore Ts'o <tytso@mit.edu>
-Date: Wed, 15 May 2019 00:51:19 -0400
-Subject: ext4: fix block validity checks for journal inodes using indirect blocks
-
-From: Theodore Ts'o <tytso@mit.edu>
-
-commit 170417c8c7bb2cbbdd949bf5c443c0c8f24a203b upstream.
-
-Commit 345c0dbf3a30 ("ext4: protect journal inode's blocks using
-block_validity") failed to add an exception for the journal inode in
-ext4_check_blockref(), which is the function used by ext4_get_branch()
-for indirect blocks. This caused attempts to read from the ext3-style
-journals to fail with:
-
-[ 848.968550] EXT4-fs error (device sdb7): ext4_get_branch:171: inode #8: block 30343695: comm jbd2/sdb7-8: invalid block
-
-Fix this by adding the missing exception check.
-
-Fixes: 345c0dbf3a30 ("ext4: protect journal inode's blocks using block_validity")
-Reported-by: Arthur Marsh <arthur.marsh@internode.on.net>
-Signed-off-by: Theodore Ts'o <tytso@mit.edu>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- fs/ext4/block_validity.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
---- a/fs/ext4/block_validity.c
-+++ b/fs/ext4/block_validity.c
-@@ -276,6 +276,11 @@ int ext4_check_blockref(const char *func
- __le32 *bref = p;
- unsigned int blk;
-
-+ if (ext4_has_feature_journal(inode->i_sb) &&
-+ (inode->i_ino ==
-+ le32_to_cpu(EXT4_SB(inode->i_sb)->s_es->s_journal_inum)))
-+ return 0;
-+
- while (bref < p+max) {
- blk = le32_to_cpu(*bref++);
- if (blk &&
+++ /dev/null
-From 345c0dbf3a30872d9b204db96b5857cd00808cae Mon Sep 17 00:00:00 2001
-From: Theodore Ts'o <tytso@mit.edu>
-Date: Tue, 9 Apr 2019 23:37:08 -0400
-Subject: ext4: protect journal inode's blocks using block_validity
-
-From: Theodore Ts'o <tytso@mit.edu>
-
-commit 345c0dbf3a30872d9b204db96b5857cd00808cae upstream.
-
-Add the blocks which belong to the journal inode to block_validity's
-system zone so attempts to deallocate or overwrite the journal due a
-corrupted file system where the journal blocks are also claimed by
-another inode.
-
-Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=202879
-Signed-off-by: Theodore Ts'o <tytso@mit.edu>
-Cc: stable@kernel.org
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- fs/ext4/block_validity.c | 48 +++++++++++++++++++++++++++++++++++++++++++++++
- fs/ext4/inode.c | 4 +++
- 2 files changed, 52 insertions(+)
-
---- a/fs/ext4/block_validity.c
-+++ b/fs/ext4/block_validity.c
-@@ -137,6 +137,48 @@ static void debug_print_tree(struct ext4
- printk(KERN_CONT "\n");
- }
-
-+static int ext4_protect_reserved_inode(struct super_block *sb, u32 ino)
-+{
-+ struct inode *inode;
-+ struct ext4_sb_info *sbi = EXT4_SB(sb);
-+ struct ext4_map_blocks map;
-+ u32 i = 0, err = 0, num, n;
-+
-+ if ((ino < EXT4_ROOT_INO) ||
-+ (ino > le32_to_cpu(sbi->s_es->s_inodes_count)))
-+ return -EINVAL;
-+ inode = ext4_iget(sb, ino, EXT4_IGET_SPECIAL);
-+ if (IS_ERR(inode))
-+ return PTR_ERR(inode);
-+ num = (inode->i_size + sb->s_blocksize - 1) >> sb->s_blocksize_bits;
-+ while (i < num) {
-+ map.m_lblk = i;
-+ map.m_len = num - i;
-+ n = ext4_map_blocks(NULL, inode, &map, 0);
-+ if (n < 0) {
-+ err = n;
-+ break;
-+ }
-+ if (n == 0) {
-+ i++;
-+ } else {
-+ if (!ext4_data_block_valid(sbi, map.m_pblk, n)) {
-+ ext4_error(sb, "blocks %llu-%llu from inode %u "
-+ "overlap system zone", map.m_pblk,
-+ map.m_pblk + map.m_len - 1, ino);
-+ err = -EFSCORRUPTED;
-+ break;
-+ }
-+ err = add_system_zone(sbi, map.m_pblk, n);
-+ if (err < 0)
-+ break;
-+ i += n;
-+ }
-+ }
-+ iput(inode);
-+ return err;
-+}
-+
- int ext4_setup_system_zone(struct super_block *sb)
- {
- ext4_group_t ngroups = ext4_get_groups_count(sb);
-@@ -171,6 +213,12 @@ int ext4_setup_system_zone(struct super_
- if (ret)
- return ret;
- }
-+ if (ext4_has_feature_journal(sb) && sbi->s_es->s_journal_inum) {
-+ ret = ext4_protect_reserved_inode(sb,
-+ le32_to_cpu(sbi->s_es->s_journal_inum));
-+ if (ret)
-+ return ret;
-+ }
-
- if (test_opt(sb, DEBUG))
- debug_print_tree(sbi);
---- a/fs/ext4/inode.c
-+++ b/fs/ext4/inode.c
-@@ -399,6 +399,10 @@ static int __check_block_validity(struct
- unsigned int line,
- struct ext4_map_blocks *map)
- {
-+ if (ext4_has_feature_journal(inode->i_sb) &&
-+ (inode->i_ino ==
-+ le32_to_cpu(EXT4_SB(inode->i_sb)->s_es->s_journal_inum)))
-+ return 0;
- if (!ext4_data_block_valid(EXT4_SB(inode->i_sb), map->m_pblk,
- map->m_len)) {
- ext4_error_inode(inode, func, line, map->m_pblk,
+++ /dev/null
-From fbbbbd2f28aec991f3fbc248df211550fbdfd58c Mon Sep 17 00:00:00 2001
-From: Colin Ian King <colin.king@canonical.com>
-Date: Fri, 10 May 2019 22:06:38 -0400
-Subject: ext4: unsigned int compared against zero
-
-From: Colin Ian King <colin.king@canonical.com>
-
-commit fbbbbd2f28aec991f3fbc248df211550fbdfd58c upstream.
-
-There are two cases where u32 variables n and err are being checked
-for less than zero error values, the checks is always false because
-the variables are not signed. Fix this by making the variables ints.
-
-Addresses-Coverity: ("Unsigned compared against 0")
-Fixes: 345c0dbf3a30 ("ext4: protect journal inode's blocks using block_validity")
-Signed-off-by: Colin Ian King <colin.king@canonical.com>
-Signed-off-by: Theodore Ts'o <tytso@mit.edu>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- fs/ext4/block_validity.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
---- a/fs/ext4/block_validity.c
-+++ b/fs/ext4/block_validity.c
-@@ -142,7 +142,8 @@ static int ext4_protect_reserved_inode(s
- struct inode *inode;
- struct ext4_sb_info *sbi = EXT4_SB(sb);
- struct ext4_map_blocks map;
-- u32 i = 0, err = 0, num, n;
-+ u32 i = 0, num;
-+ int err = 0, n;
-
- if ((ino < EXT4_ROOT_INO) ||
- (ino > le32_to_cpu(sbi->s_es->s_inodes_count)))
tty-vt-fix-write-write-race-in-ioctl-kdskbsent-handler.patch
jbd2-check-superblock-mapped-prior-to-committing.patch
ext4-make-sanity-check-in-mballoc-more-strict.patch
-ext4-protect-journal-inode-s-blocks-using-block_validity.patch
ext4-ignore-e_value_offs-for-xattrs-with-value-in-ea-inode.patch
ext4-avoid-drop-reference-to-iloc.bh-twice.patch
ext4-fix-use-after-free-race-with-debug_want_extra_isize.patch
libnvdimm-namespace-fix-label-tracking-error.patch
s390-mm-make-the-pxd_offset-functions-more-robust.patch
s390-mm-convert-to-the-generic-get_user_pages_fast-code.patch
-ext4-unsigned-int-compared-against-zero.patch
-ext4-fix-block-validity-checks-for-journal-inodes-using-indirect-blocks.patch