From 40452d5ee281d71d7911eb310146c3be0b237040 Mon Sep 17 00:00:00 2001 From: Kirk McKusick Date: Tue, 27 Mar 1990 22:32:12 -0800 Subject: [PATCH] do not release vnode until done creating its alias SCCS-vsn: sys/kern/vfs_subr.c 7.33 --- usr/src/sys/kern/vfs_subr.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/usr/src/sys/kern/vfs_subr.c b/usr/src/sys/kern/vfs_subr.c index 8f87bc6dcb..4c621c7423 100644 --- a/usr/src/sys/kern/vfs_subr.c +++ b/usr/src/sys/kern/vfs_subr.c @@ -14,7 +14,7 @@ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. * - * @(#)vfs_subr.c 7.32 (Berkeley) %G% + * @(#)vfs_subr.c 7.33 (Berkeley) %G% */ /* @@ -367,17 +367,17 @@ loop: break; } if (vp == NULL || vp->v_tag != VT_NON) { - if (vp != NULL) { - nvp->v_flag |= VALIASED; - vp->v_flag |= VALIASED; - vput(vp); - } MALLOC(nvp->v_specinfo, struct specinfo *, sizeof(struct specinfo), M_VNODE, M_WAITOK); nvp->v_rdev = nvp_rdev; nvp->v_hashchain = vpp; nvp->v_specnext = *vpp; *vpp = nvp; + if (vp != NULL) { + nvp->v_flag |= VALIASED; + vp->v_flag |= VALIASED; + vput(vp); + } return ((struct vnode *)0); } VOP_UNLOCK(vp); -- 2.20.1