linux/fs/ext4
Baokun Li c2bd60ef20 ext4: fix bad checksum after online resize
commit a408f33e89 upstream.

When online resizing is performed twice consecutively, the error message
"Superblock checksum does not match superblock" is displayed for the
second time. Here's the reproducer:

	mkfs.ext4 -F /dev/sdb 100M
	mount /dev/sdb /tmp/test
	resize2fs /dev/sdb 5G
	resize2fs /dev/sdb 6G

To solve this issue, we moved the update of the checksum after the
es->s_overhead_clusters is updated.

Fixes: 026d0d27c4 ("ext4: reduce computation of overhead during resize")
Fixes: de394a8665 ("ext4: update s_overhead_clusters in the superblock during an on-line resize")
Signed-off-by: Baokun Li <libaokun1@huawei.com>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Jan Kara <jack@suse.cz>
Cc: stable@kernel.org
Link: https://lore.kernel.org/r/20221117040341.1380702-2-libaokun1@huawei.com
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Signed-off-by: Oleksandr Tymoshenko <ovt@google.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-02-06 07:59:01 +01:00
..
.kunitconfig
Kconfig
Makefile
acl.c
acl.h
balloc.c ext4: use ext4_debug() instead of jbd_debug() 2023-01-12 11:59:04 +01:00
bitmap.c
block_validity.c
dir.c
ext4.h ext4: don't set up encryption key during jbd2 transaction 2023-01-12 11:59:04 +01:00
ext4_extents.h
ext4_jbd2.c ext4: use ext4_debug() instead of jbd_debug() 2023-01-12 11:59:04 +01:00
ext4_jbd2.h
extents.c ext4: fix delayed allocation bug in ext4_clu_mapped for bigalloc + inline 2023-01-12 11:59:02 +01:00
extents_status.c ext4: fix reserved cluster accounting in __es_remove_extent() 2023-01-12 11:59:01 +01:00
extents_status.h
fast_commit.c ext4: fix off-by-one errors in fast-commit block filling 2023-01-12 11:59:05 +01:00
fast_commit.h ext4: add missing validation of fast-commit record lengths 2023-01-12 11:59:05 +01:00
file.c ext4: avoid crash when inline data creation follows DIO write 2022-10-26 12:34:28 +02:00
fsmap.c
fsmap.h
fsync.c
hash.c
ialloc.c ext4: make directory inode spreading reflect flexbg size 2022-09-28 11:11:57 +02:00
indirect.c ext4: use ext4_debug() instead of jbd_debug() 2023-01-12 11:59:04 +01:00
inline.c ext4: correct max_inline_xattr_value_size computing 2022-08-17 14:24:27 +02:00
inode-test.c
inode.c ext4: use ext4_debug() instead of jbd_debug() 2023-01-12 11:59:04 +01:00
ioctl.c ext4: initialize quota before expanding inode in setproject ioctl 2023-01-12 11:59:03 +01:00
mballoc.c ext4: use locality group preallocation for small closed files 2022-09-28 11:11:58 +02:00
mballoc.h
migrate.c ext4: fix warning in 'ext4_da_release_space' 2022-11-10 18:15:40 +01:00
mmp.c
move_extent.c
namei.c ext4: don't set up encryption key during jbd2 transaction 2023-01-12 11:59:04 +01:00
orphan.c ext4: use ext4_debug() instead of jbd_debug() 2023-01-12 11:59:04 +01:00
page-io.c ext4: fix symlink file size not match to file content 2022-04-27 14:39:01 +02:00
readpage.c
resize.c ext4: fix bad checksum after online resize 2023-02-06 07:59:01 +01:00
super.c ext4: don't allow journal inode to have encrypt flag 2023-01-12 11:59:19 +01:00
symlink.c
sysfs.c
truncate.h
verity.c fs: ext4: initialize fsdata in pagecache_write() 2023-01-12 11:59:00 +01:00
xattr.c ext4: fix deadlock due to mbcache entry corruption 2023-01-12 11:59:07 +01:00
xattr.h ext4: remove EA inode entry from mbcache on inode eviction 2022-08-17 14:24:27 +02:00
xattr_hurd.c
xattr_security.c
xattr_trusted.c
xattr_user.c