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
This commit is contained in:
Konstantin Belousov 2010-12-01 21:19:11 +00:00
parent e5a2338118
commit fddd463dc2

View File

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