diff options
Diffstat (limited to 'sys/fs/devfs/devfs_vfsops.c')
-rw-r--r-- | sys/fs/devfs/devfs_vfsops.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/fs/devfs/devfs_vfsops.c b/sys/fs/devfs/devfs_vfsops.c index 00951ae..0c5d1bb 100644 --- a/sys/fs/devfs/devfs_vfsops.c +++ b/sys/fs/devfs/devfs_vfsops.c @@ -133,12 +133,14 @@ devfs_unmount(mp, mntflags, p) fmp = VFSTODEVFS(mp); if (mntflags & MNT_FORCE) flags |= FORCECLOSE; - if (rootvp->v_usecount > 1) + if (rootvp->v_usecount > 2) { + vrele(rootvp); return (EBUSY); - devfs_purge(fmp->dm_rootdir); + } error = vflush(mp, rootvp, flags); if (error) return (error); + devfs_purge(fmp->dm_rootdir); vput(rootvp); vrele(rootvp); vgone(rootvp); |