summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDiangang Li <lidiangang@bytedance.com>2025-03-11 10:13:10 +0800
committerTheodore Ts'o <tytso@mit.edu>2025-03-18 00:15:25 -0400
commit5f1cf94d80208f5baa203f10fa762d3f0b567ad8 (patch)
tree15f92e15aebf50121bdcc550eada03f0361b6070
parent743717670a36b80dfd43896dac5074f8ba5f163f (diff)
ext4: clear DISCARD flag if device does not support discard
commit 79add3a3f795e ("ext4: notify when discard is not supported") noted that keeping the DISCARD flag is for possibility that the underlying device might change in future even without file system remount. However, this scenario has rarely occurred in practice on the device side. Even if it does occur, it can be resolved with remount. Clearing the DISCARD flag not only prevents confusion caused by mount options but also avoids sending unnecessary discard commands. Signed-off-by: Diangang Li <lidiangang@bytedance.com> Link: https://patch.msgid.link/20250311021310.669524-1-lidiangang@bytedance.com Signed-off-by: Theodore Ts'o <tytso@mit.edu>
-rw-r--r--fs/ext4/super.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index fec729bc287e..4768770715ca 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -5620,9 +5620,11 @@ static int __ext4_fill_super(struct fs_context *fc, struct super_block *sb)
goto failed_mount9;
}
- if (test_opt(sb, DISCARD) && !bdev_max_discard_sectors(sb->s_bdev))
+ if (test_opt(sb, DISCARD) && !bdev_max_discard_sectors(sb->s_bdev)) {
ext4_msg(sb, KERN_WARNING,
"mounting with \"discard\" option, but the device does not support discard");
+ clear_opt(sb, DISCARD);
+ }
if (es->s_error_count)
mod_timer(&sbi->s_err_report, jiffies + 300*HZ); /* 5 minutes */