linux-ext4.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2] ext4: do not set SB_ACTIVE in ext4_orphan_cleanup()
@ 2021-03-31 12:09 Zhang Yi
  0 siblings, 0 replies; only message in thread
From: Zhang Yi @ 2021-03-31 12:09 UTC (permalink / raw)
  To: linux-ext4; +Cc: tytso, adilger.kernel, jack, yi.zhang

When CONFIG_QUOTA is enabled and if we later fail to finish mounting the
filesystem due to some error after ext4_orphan_cleanup(), we may hit use
after free issues. The problem is that ext4_orphan_cleanup() sets
SB_ACTIVE flag and so inodes processed during the orphan cleanup are put
to the superblock's LRU list instead of being immediately destroyed.
However the path handling error recovery after failed ->fill_super()
call does not destroy inodes attached to the superblock and so they are
left active in memory while the superblock is freed.

Originally, SB_ACTIVE setting was added so that updated quota
information is not destroyed when we drop quota inode references after
orphan cleanup. However VFS does not purge dirty inode pages without
SB_ACTIVE flag for many years already. So just remove the hack with
setting SB_ACTIVE flag from ext4_orphan_cleanup().

Signed-off-by: Zhang Yi <yi.zhang@huawei.com>
Tested-by: Jan Kara <jack@suse.cz>
Reviewed-by: Jan Kara <jack@suse.cz>
---
Changes since v1:
 - Rephrase the changelog as Jan suggested.

 fs/ext4/super.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index b9693680463a..2a33c53b57d8 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -3023,9 +3023,6 @@ static void ext4_orphan_cleanup(struct super_block *sb,
 		sb->s_flags &= ~SB_RDONLY;
 	}
 #ifdef CONFIG_QUOTA
-	/* Needed for iput() to work correctly and not trash data */
-	sb->s_flags |= SB_ACTIVE;
-
 	/*
 	 * Turn on quotas which were not enabled for read-only mounts if
 	 * filesystem has quota feature, so that they are updated correctly.
-- 
2.25.4


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2021-03-31 12:02 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-31 12:09 [PATCH v2] ext4: do not set SB_ACTIVE in ext4_orphan_cleanup() Zhang Yi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).