must set vnode type to VNON after reassigning it
authorKirk McKusick <mckusick@ucbvax.Berkeley.EDU>
Sat, 11 Nov 1989 10:51:07 +0000 (02:51 -0800)
committerKirk McKusick <mckusick@ucbvax.Berkeley.EDU>
Sat, 11 Nov 1989 10:51:07 +0000 (02:51 -0800)
SCCS-vsn: sys/kern/vfs_subr.c 7.14

usr/src/sys/kern/vfs_subr.c

index 281e401..9458116 100644 (file)
@@ -14,7 +14,7 @@
  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  *
  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  *
- *     @(#)vfs_subr.c  7.13 (Berkeley) %G%
+ *     @(#)vfs_subr.c  7.14 (Berkeley) %G%
  */
 
 /*
  */
 
 /*
@@ -235,8 +235,9 @@ getnewvnode(tag, mp, vops, vpp)
        vfreeh = vq;
        vp->v_freef = NULL;
        vp->v_freeb = NULL;
        vfreeh = vq;
        vp->v_freef = NULL;
        vp->v_freeb = NULL;
-       if (vp->v_type != VNON)
+       if (vp->v_type != VNON && vp->v_type != VBAD)
                vgone(vp);
                vgone(vp);
+       vp->v_type = VNON;
        vp->v_flag = 0;
        vp->v_shlockc = 0;
        vp->v_exlockc = 0;
        vp->v_flag = 0;
        vp->v_shlockc = 0;
        vp->v_exlockc = 0;