All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] ext4: Fix tune2fs checksum failure for mounted filesystem
@ 2021-08-12 12:47 Jan Kara
  2021-08-14 14:24 ` Theodore Ts'o
  0 siblings, 1 reply; 2+ messages in thread
From: Jan Kara @ 2021-08-12 12:47 UTC (permalink / raw)
  To: Ted Tso; +Cc: Boyang Xue, linux-ext4, Jan Kara

Commit 81414b4dd48 ("ext4: remove redundant sb checksum recomputation")
removed checksum recalculation after updating superblock free space /
inode counters in ext4_fill_super() based on the fact that we will
recalculate the checksum on superblock writeout. That is correct
assumption but until the writeout happens (which can take a long time)
the checksum is incorrect in the buffer cache and if tune2fs is called
in that time window it will complain. So return back the checksum
recalculation and add a comment explaining the tune2fs peculiarity.

Fixes: 81414b4dd48f ("ext4: remove redundant sb checksum recomputation")
Reported-by: Boyang Xue <bxue@redhat.com>
Signed-off-by: Jan Kara <jack@suse.cz>
---
 fs/ext4/super.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index dfa09a277b56..8f2474618f7e 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -5032,6 +5032,12 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent)
 		err = percpu_counter_init(&sbi->s_freeinodes_counter, freei,
 					  GFP_KERNEL);
 	}
+	/*
+	 * Let's update the checksum after updating free space/inode counters.
+	 * Otherwise sb will have incorrect checksum in the buffer cache until
+	 * sb is written out and tune2fs can get confused.
+	 */
+	ext4_superblock_csum_set(sb);
 	if (!err)
 		err = percpu_counter_init(&sbi->s_dirs_counter,
 					  ext4_count_dirs(sb), GFP_KERNEL);
-- 
2.26.2


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] ext4: Fix tune2fs checksum failure for mounted filesystem
  2021-08-12 12:47 [PATCH] ext4: Fix tune2fs checksum failure for mounted filesystem Jan Kara
@ 2021-08-14 14:24 ` Theodore Ts'o
  0 siblings, 0 replies; 2+ messages in thread
From: Theodore Ts'o @ 2021-08-14 14:24 UTC (permalink / raw)
  To: Jan Kara; +Cc: Theodore Ts'o, Boyang Xue, linux-ext4

On Thu, 12 Aug 2021 14:47:37 +0200, Jan Kara wrote:
> Commit 81414b4dd48 ("ext4: remove redundant sb checksum recomputation")
> removed checksum recalculation after updating superblock free space /
> inode counters in ext4_fill_super() based on the fact that we will
> recalculate the checksum on superblock writeout. That is correct
> assumption but until the writeout happens (which can take a long time)
> the checksum is incorrect in the buffer cache and if tune2fs is called
> in that time window it will complain. So return back the checksum
> recalculation and add a comment explaining the tune2fs peculiarity.
> 
> [...]

Applied, thanks!

[1/1] ext4: Fix tune2fs checksum failure for mounted filesystem
      commit: e905fbe3fd0fdb90052f6efdf88f50a78833cfe7

Best regards,
-- 
Theodore Ts'o <tytso@mit.edu>

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-08-14 14:24 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-08-12 12:47 [PATCH] ext4: Fix tune2fs checksum failure for mounted filesystem Jan Kara
2021-08-14 14:24 ` Theodore Ts'o

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.