From 2021967ed54b2a7eea730880c83703de47954567 Mon Sep 17 00:00:00 2001 From: Kirk McKusick Date: Fri, 21 Feb 1992 23:57:45 -0800 Subject: [PATCH] symlinks are OK if not being followed SCCS-vsn: sys/ufs/ffs/ufs_vnops.c 7.79 SCCS-vsn: sys/ufs/ufs/ufs_vnops.c 7.79 --- usr/src/sys/ufs/ffs/ufs_vnops.c | 19 +++---------------- usr/src/sys/ufs/ufs/ufs_vnops.c | 19 +++---------------- 2 files changed, 6 insertions(+), 32 deletions(-) diff --git a/usr/src/sys/ufs/ffs/ufs_vnops.c b/usr/src/sys/ufs/ffs/ufs_vnops.c index 3b15247c6e..076f951ac9 100644 --- a/usr/src/sys/ufs/ffs/ufs_vnops.c +++ b/usr/src/sys/ufs/ffs/ufs_vnops.c @@ -4,7 +4,7 @@ * * %sccs.include.redist.c% * - * @(#)ufs_vnops.c 7.78 (Berkeley) %G% + * @(#)ufs_vnops.c 7.79 (Berkeley) %G% */ #include @@ -677,9 +677,6 @@ relookup(dvp, vpp, cnp) #ifdef DIAGNOSTIC if (*vpp != NULL) panic("leaf should be empty"); -#endif -#ifdef NAMEI_DIAGNOSTIC - printf("not found\n"); #endif if (cnp->cn_nameiop == LOOKUP || cnp->cn_nameiop == DELETE || error != ENOENT) @@ -702,26 +699,16 @@ relookup(dvp, vpp, cnp) */ return (0); } -#ifdef NAMEI_DIAGNOSTIC - printf("found\n"); -#endif - dp = *vpp; + #ifdef DIAGNOSTIC /* * Check for symbolic link */ - if (dp->v_type == VLNK) { + if (dp->v_type == VLNK && (cnp->cn_flags & FOLLOW)) panic ("relookup: symlink found.\n"); - }; - - /* - * Check to see if the vnode has been mounted on; - * if so find the root of the mounted file system. - */ #endif - nextname: /* * Check for read-only file systems. diff --git a/usr/src/sys/ufs/ufs/ufs_vnops.c b/usr/src/sys/ufs/ufs/ufs_vnops.c index 3b15247c6e..076f951ac9 100644 --- a/usr/src/sys/ufs/ufs/ufs_vnops.c +++ b/usr/src/sys/ufs/ufs/ufs_vnops.c @@ -4,7 +4,7 @@ * * %sccs.include.redist.c% * - * @(#)ufs_vnops.c 7.78 (Berkeley) %G% + * @(#)ufs_vnops.c 7.79 (Berkeley) %G% */ #include @@ -677,9 +677,6 @@ relookup(dvp, vpp, cnp) #ifdef DIAGNOSTIC if (*vpp != NULL) panic("leaf should be empty"); -#endif -#ifdef NAMEI_DIAGNOSTIC - printf("not found\n"); #endif if (cnp->cn_nameiop == LOOKUP || cnp->cn_nameiop == DELETE || error != ENOENT) @@ -702,26 +699,16 @@ relookup(dvp, vpp, cnp) */ return (0); } -#ifdef NAMEI_DIAGNOSTIC - printf("found\n"); -#endif - dp = *vpp; + #ifdef DIAGNOSTIC /* * Check for symbolic link */ - if (dp->v_type == VLNK) { + if (dp->v_type == VLNK && (cnp->cn_flags & FOLLOW)) panic ("relookup: symlink found.\n"); - }; - - /* - * Check to see if the vnode has been mounted on; - * if so find the root of the mounted file system. - */ #endif - nextname: /* * Check for read-only file systems. -- 2.20.1