From e3e1ae2c87e9c90fc1af144567e491f3f049512d Mon Sep 17 00:00:00 2001 From: kib Date: Wed, 1 Dec 2010 21:19:11 +0000 Subject: Journal start looks up .sujournal file by doing lookup on the root dvp. As result, failed softdep_mount() might leave up to two vnodes on the mp mountlist, preventing mnt_ref from going to zero. Call ffs_flushfiles() after failed softdep_mount() to clean mountlist. Initial report by: Garrett Cooper Reproduced and tested by: pho --- sys/ufs/ffs/ffs_vfsops.c | 1 + 1 file changed, 1 insertion(+) (limited to 'sys/ufs/ffs/ffs_vfsops.c') diff --git a/sys/ufs/ffs/ffs_vfsops.c b/sys/ufs/ffs/ffs_vfsops.c index 94951e4..72f40da 100644 --- a/sys/ufs/ffs/ffs_vfsops.c +++ b/sys/ufs/ffs/ffs_vfsops.c @@ -928,6 +928,7 @@ ffs_mountfs(devvp, mp, td) if ((fs->fs_flags & FS_DOSOFTDEP) && (error = softdep_mount(devvp, mp, fs, cred)) != 0) { free(fs->fs_csp, M_UFSMNT); + ffs_flushfiles(mp, FORCECLOSE, td); goto out; } if (fs->fs_snapinum[0] != 0) -- cgit v1.1