linux-xfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] xfs: unset MS_ACTIVE if mount fails
@ 2016-10-18  1:10 Darrick J. Wong
  2016-10-18  5:24 ` Christoph Hellwig
  0 siblings, 1 reply; 4+ messages in thread
From: Darrick J. Wong @ 2016-10-18  1:10 UTC (permalink / raw)
  To: david; +Cc: linux-xfs

As part of the inode block map intent log item recovery process, we had
to set the IRECOVERY flag to prevent an unlinked inode from being
truncated during the first iput call.  This required us to set MS_ACTIVE
so that iput puts the inode on the lru instead of immediately evicting
the inode.

Unfortunately, if the mount fails later on, the inodes that have been
loaded (root dir and realtime) actually need to be evicted since we're
aborting the mount.  If we don't clear MS_ACTIVE in the failure step,
those inodes are not evicted and therefore leak.   The leak was found
by running xfs/130 and rmmoding xfs immediately after the test.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
---
 fs/xfs/xfs_mount.c |    1 +
 1 file changed, 1 insertion(+)

diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c
index fc78739..b341f10 100644
--- a/fs/xfs/xfs_mount.c
+++ b/fs/xfs/xfs_mount.c
@@ -1009,6 +1009,7 @@ xfs_mountfs(
  out_quota:
 	xfs_qm_unmount_quotas(mp);
  out_rtunmount:
+	mp->m_super->s_flags &= ~MS_ACTIVE;
 	xfs_rtunmount_inodes(mp);
  out_rele_rip:
 	IRELE(rip);

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

end of thread, other threads:[~2016-10-18  6:50 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-10-18  1:10 [PATCH] xfs: unset MS_ACTIVE if mount fails Darrick J. Wong
2016-10-18  5:24 ` Christoph Hellwig
2016-10-18  5:38   ` Darrick J. Wong
2016-10-18  6:50     ` Christoph Hellwig

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).