diff options
Diffstat (limited to 'sys/fs/portalfs/portal_vfsops.c')
-rw-r--r-- | sys/fs/portalfs/portal_vfsops.c | 14 |
1 files changed, 2 insertions, 12 deletions
diff --git a/sys/fs/portalfs/portal_vfsops.c b/sys/fs/portalfs/portal_vfsops.c index 5146456..423cd38 100644 --- a/sys/fs/portalfs/portal_vfsops.c +++ b/sys/fs/portalfs/portal_vfsops.c @@ -155,7 +155,6 @@ portal_unmount(mp, mntflags, p) int mntflags; struct proc *p; { - struct vnode *rootvp = VFSTOPORTAL(mp)->pm_root; int error, flags = 0; @@ -172,21 +171,12 @@ portal_unmount(mp, mntflags, p) if (mntinvalbuf(mp, 1)) return (EBUSY); #endif - if (rootvp->v_usecount > 1) - return (EBUSY); - error = vflush(mp, rootvp, flags); + /* There is 1 extra root vnode reference (pm_root). */ + error = vflush(mp, 1, flags); if (error) return (error); /* - * Release reference on underlying root vnode - */ - vrele(rootvp); - /* - * And blow it away for future re-use - */ - vgone(rootvp); - /* * Shutdown the socket. This will cause the select in the * daemon to wake up, and then the accept will get ECONNABORTED * which it interprets as a request to go and bury itself. |