--- msdosfs_vnops.c.orig Mon Apr 10 04:32:37 2000 +++ msdosfs_vnops.c Wed Oct 4 00:13:39 2000 @@ -1108,7 +1108,6 @@ VOP_UNLOCK(fvp, 0, p); if (VTODE(fdvp)->de_StartCluster != VTODE(tdvp)->de_StartCluster) newparent = 1; - vrele(fdvp); if (doingdirectory && newparent) { if (error) /* write access check above */ goto bad; @@ -1176,7 +1175,8 @@ panic("msdosfs_rename: lost from startdir"); if (!newparent) VOP_UNLOCK(tdvp, 0, p); - (void) relookup(fdvp, &fvp, fcnp); + if (relookup(fdvp, &fvp, fcnp) == 0) + vrele(fdvp); if (fvp == NULL) { /* * From name has disappeared.