Index: nfs_node.c =================================================================== RCS file: /home/ncvs/src/sys/nfs/Attic/nfs_node.c,v retrieving revision 1.36.2.3 diff -u -r1.36.2.3 nfs_node.c --- nfs_node.c 5 Jan 2002 22:25:04 -0000 1.36.2.3 +++ nfs_node.c 29 Sep 2003 19:53:08 -0000 @@ -204,11 +204,11 @@ np = VTONFS(ap->a_vp); if (prtactive && ap->a_vp->v_usecount != 0) vprint("nfs_inactive: pushing active", ap->a_vp); - if (ap->a_vp->v_type != VDIR) { + if (ap->a_vp->v_type != VDIR) sp = np->n_sillyrename; - np->n_sillyrename = (struct sillyrename *)0; - } else + else sp = (struct sillyrename *)0; + np->n_sillyrename = (struct sillyrename *)0; if (sp) { /* * We need a reference to keep the vnode from being Index: nfs_vnops.c =================================================================== RCS file: /home/ncvs/src/sys/nfs/Attic/nfs_vnops.c,v retrieving revision 1.150.2.6 diff -u -r1.150.2.6 nfs_vnops.c --- nfs_vnops.c 20 Jun 2003 00:54:11 -0000 1.150.2.6 +++ nfs_vnops.c 29 Sep 2003 19:53:08 -0000 @@ -1562,7 +1562,7 @@ * Make sure that the directory vnode is still valid. * XXX we should lock sp->s_dvp here. */ - if (sp->s_dvp->v_type == VBAD) + if (sp->s_dvp->v_type != VDIR) return (0); return (nfs_removerpc(sp->s_dvp, sp->s_name, sp->s_namlen, sp->s_cred, (struct proc *)0)); @@ -2547,6 +2547,8 @@ goto bad; error = nfs_lookitup(dvp, sp->s_name, sp->s_namlen, sp->s_cred, cnp->cn_proc, &np); + if (error) + goto bad; np->n_sillyrename = sp; return (0); bad: