summaryrefslogtreecommitdiffstats
path: root/sys/fs/devfs/devfs_vfsops.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/fs/devfs/devfs_vfsops.c')
-rw-r--r--sys/fs/devfs/devfs_vfsops.c6
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);
OpenPOWER on IntegriCloud