]> git.itanic.dy.fi Git - linux-stable/commitdiff
ext4: avoid starting transaction on read-only fs in ext4_quota_off()
authorJan Kara <jack@suse.cz>
Fri, 16 Jun 2023 16:50:52 +0000 (18:50 +0200)
committerTheodore Ts'o <tytso@mit.edu>
Sat, 29 Jul 2023 22:37:53 +0000 (18:37 -0400)
When the filesystem gets first remounted read-only and then unmounted,
ext4_quota_off() will try to start a transaction (and fail) on read-only
filesystem to cleanup inode flags for legacy quota files. Just bail
before trying to start a transaction instead since that is going to
issue a warning.

Signed-off-by: Jan Kara <jack@suse.cz>
Link: https://lore.kernel.org/r/20230616165109.21695-6-jack@suse.cz
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
fs/ext4/super.c

index 20a8e64da4ac7372bc19d947d258980729475191..a9a7c38c74423fc597d1d5f3194a4d3b0b5cefa3 100644 (file)
@@ -7072,6 +7072,13 @@ static int ext4_quota_off(struct super_block *sb, int type)
        err = dquot_quota_off(sb, type);
        if (err || ext4_has_feature_quota(sb))
                goto out_put;
+       /*
+        * When the filesystem was remounted read-only first, we cannot cleanup
+        * inode flags here. Bad luck but people should be using QUOTA feature
+        * these days anyway.
+        */
+       if (sb_rdonly(sb))
+               goto out_put;
 
        inode_lock(inode);
        /*