Index: devfs_vnops.c =================================================================== RCS file: /space2/ncvs/src/sys/fs/devfs/devfs_vnops.c,v retrieving revision 1.38 diff -u -p -r1.38 devfs_vnops.c --- devfs_vnops.c 29 Apr 2002 20:00:39 -0000 1.38 +++ devfs_vnops.c 9 May 2002 22:25:08 -0000 @@ -276,7 +276,7 @@ devfs_lookupx(ap) *vpp = NULLVP; - if (nameiop == RENAME) + if ((flags & ISLASTCN) && nameiop == RENAME) return (EOPNOTSUPP); if (dvp->v_type != VDIR) @@ -290,7 +290,7 @@ devfs_lookupx(ap) return (error); if (cnp->cn_namelen == 1 && *pname == '.') { - if (nameiop != LOOKUP) + if ((flags & ISLASTCN) && nameiop != LOOKUP) return (EINVAL); *vpp = dvp; VREF(dvp); @@ -298,7 +298,7 @@ devfs_lookupx(ap) } if (flags & ISDOTDOT) { - if (nameiop != LOOKUP) + if ((flags & ISLASTCN) && nameiop != LOOKUP) return (EINVAL); VOP_UNLOCK(dvp, 0, td); de = TAILQ_FIRST(&dd->de_dlist); /* "." */ @@ -329,7 +329,7 @@ devfs_lookupx(ap) goto found; } - if (nameiop == DELETE) + if (nameiop == DELETE || !(flags & ISLASTCN)) goto notfound; /*