ext4: avoid starting transaction on read-only fs in ext4_quota_off()

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>
This commit is contained in:
Jan Kara 2023-06-16 18:50:52 +02:00 committed by Theodore Ts'o
parent 95257987a6
commit e0e985f3f8
1 changed files with 7 additions and 0 deletions

View 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);
/*