Module Name:    src
Committed By:   dholland
Date:           Tue Nov 30 10:43:06 UTC 2010

Modified Files:
        src/sys/coda: coda_vnops.c
        src/sys/compat/svr4: svr4_misc.c
        src/sys/compat/svr4_32: svr4_32_misc.c
        src/sys/fs/adosfs: adlookup.c
        src/sys/fs/efs: efs_vnops.c
        src/sys/fs/msdosfs: msdosfs_lookup.c msdosfs_vnops.c
        src/sys/fs/nilfs: nilfs_vnops.c
        src/sys/fs/puffs: puffs_vnops.c
        src/sys/fs/smbfs: smbfs_vnops.c
        src/sys/fs/sysvbfs: sysvbfs_vnops.c
        src/sys/fs/tmpfs: tmpfs_subr.c tmpfs_vnops.c
        src/sys/fs/udf: udf_vnops.c
        src/sys/fs/union: union_subr.c
        src/sys/fs/unionfs: unionfs_subr.c unionfs_vnops.c
        src/sys/kern: kern_exec.c vfs_lookup.c
        src/sys/miscfs/genfs: genfs_vnops.c
        src/sys/nfs: nfs_vnops.c
        src/sys/sys: namei.src
        src/sys/ufs/ext2fs: ext2fs_lookup.c ext2fs_vnops.c
        src/sys/ufs/ufs: ufs_lookup.c ufs_vnops.c ufs_wapbl.c

Log Message:
Abolish the SAVENAME and HASBUF flags. There is now always a buffer,
so the path in a struct componentname is now always valid during VOP
calls.


To generate a diff of this commit:
cvs rdiff -u -r1.77 -r1.78 src/sys/coda/coda_vnops.c
cvs rdiff -u -r1.153 -r1.154 src/sys/compat/svr4/svr4_misc.c
cvs rdiff -u -r1.72 -r1.73 src/sys/compat/svr4_32/svr4_32_misc.c
cvs rdiff -u -r1.14 -r1.15 src/sys/fs/adosfs/adlookup.c
cvs rdiff -u -r1.22 -r1.23 src/sys/fs/efs/efs_vnops.c
cvs rdiff -u -r1.22 -r1.23 src/sys/fs/msdosfs/msdosfs_lookup.c
cvs rdiff -u -r1.69 -r1.70 src/sys/fs/msdosfs/msdosfs_vnops.c
cvs rdiff -u -r1.8 -r1.9 src/sys/fs/nilfs/nilfs_vnops.c
cvs rdiff -u -r1.148 -r1.149 src/sys/fs/puffs/puffs_vnops.c
cvs rdiff -u -r1.76 -r1.77 src/sys/fs/smbfs/smbfs_vnops.c
cvs rdiff -u -r1.34 -r1.35 src/sys/fs/sysvbfs/sysvbfs_vnops.c
cvs rdiff -u -r1.60 -r1.61 src/sys/fs/tmpfs/tmpfs_subr.c
cvs rdiff -u -r1.74 -r1.75 src/sys/fs/tmpfs/tmpfs_vnops.c
cvs rdiff -u -r1.60 -r1.61 src/sys/fs/udf/udf_vnops.c
cvs rdiff -u -r1.40 -r1.41 src/sys/fs/union/union_subr.c
cvs rdiff -u -r1.10 -r1.11 src/sys/fs/unionfs/unionfs_subr.c
cvs rdiff -u -r1.3 -r1.4 src/sys/fs/unionfs/unionfs_vnops.c
cvs rdiff -u -r1.302 -r1.303 src/sys/kern/kern_exec.c
cvs rdiff -u -r1.124 -r1.125 src/sys/kern/vfs_lookup.c
cvs rdiff -u -r1.184 -r1.185 src/sys/miscfs/genfs/genfs_vnops.c
cvs rdiff -u -r1.286 -r1.287 src/sys/nfs/nfs_vnops.c
cvs rdiff -u -r1.16 -r1.17 src/sys/sys/namei.src
cvs rdiff -u -r1.62 -r1.63 src/sys/ufs/ext2fs/ext2fs_lookup.c
cvs rdiff -u -r1.95 -r1.96 src/sys/ufs/ext2fs/ext2fs_vnops.c
cvs rdiff -u -r1.105 -r1.106 src/sys/ufs/ufs/ufs_lookup.c
cvs rdiff -u -r1.184 -r1.185 src/sys/ufs/ufs/ufs_vnops.c
cvs rdiff -u -r1.10 -r1.11 src/sys/ufs/ufs/ufs_wapbl.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/coda/coda_vnops.c
diff -u src/sys/coda/coda_vnops.c:1.77 src/sys/coda/coda_vnops.c:1.78
--- src/sys/coda/coda_vnops.c:1.77	Tue Nov 30 10:29:57 2010
+++ src/sys/coda/coda_vnops.c	Tue Nov 30 10:43:01 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: coda_vnops.c,v 1.77 2010/11/30 10:29:57 dholland Exp $	*/
+/*	$NetBSD: coda_vnops.c,v 1.78 2010/11/30 10:43:01 dholland Exp $	*/
 
 /*
  *
@@ -46,7 +46,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: coda_vnops.c,v 1.77 2010/11/30 10:29:57 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: coda_vnops.c,v 1.78 2010/11/30 10:43:01 dholland Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -997,24 +997,10 @@
 	&& (error == ENOENT))
     {
 	error = EJUSTRETURN;
-	cnp->cn_flags |= SAVENAME;
 	*ap->a_vpp = NULL;
     }
 
     /*
-     * If we are removing, and we are at the last element, and we
-     * found it, then we need to keep the name around so that the
-     * removal will go ahead as planned.
-     * XXX Check against new lookup rules.
-     */
-    if ((cnp->cn_nameiop == DELETE)
-	&& (cnp->cn_flags & ISLASTCN)
-	&& !error)
-    {
-	cnp->cn_flags |= SAVENAME;
-    }
-
-    /*
      * If the lookup succeeded, we must generally lock the returned
      * vnode.  This could be a ., .., or normal lookup.  See
      * vnodeops(9) for the details.

Index: src/sys/compat/svr4/svr4_misc.c
diff -u src/sys/compat/svr4/svr4_misc.c:1.153 src/sys/compat/svr4/svr4_misc.c:1.154
--- src/sys/compat/svr4/svr4_misc.c:1.153	Tue Nov 30 10:29:58 2010
+++ src/sys/compat/svr4/svr4_misc.c	Tue Nov 30 10:43:02 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: svr4_misc.c,v 1.153 2010/11/30 10:29:58 dholland Exp $	 */
+/*	$NetBSD: svr4_misc.c,v 1.154 2010/11/30 10:43:02 dholland Exp $	 */
 
 /*-
  * Copyright (c) 1994, 2008 The NetBSD Foundation, Inc.
@@ -37,7 +37,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: svr4_misc.c,v 1.153 2010/11/30 10:29:58 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: svr4_misc.c,v 1.154 2010/11/30 10:43:02 dholland Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -1328,7 +1328,7 @@
 		return ENOMEM;
 	}
 
-	NDINIT(&nd, LOOKUP, NOFOLLOW | SAVENAME | TRYEMULROOT, pb);
+	NDINIT(&nd, LOOKUP, NOFOLLOW | TRYEMULROOT, pb);
 	if ((error = namei(&nd)) != 0) {
 		pathbuf_destroy(pb);
 		return error;

Index: src/sys/compat/svr4_32/svr4_32_misc.c
diff -u src/sys/compat/svr4_32/svr4_32_misc.c:1.72 src/sys/compat/svr4_32/svr4_32_misc.c:1.73
--- src/sys/compat/svr4_32/svr4_32_misc.c:1.72	Tue Nov 30 10:29:58 2010
+++ src/sys/compat/svr4_32/svr4_32_misc.c	Tue Nov 30 10:43:02 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: svr4_32_misc.c,v 1.72 2010/11/30 10:29:58 dholland Exp $	 */
+/*	$NetBSD: svr4_32_misc.c,v 1.73 2010/11/30 10:43:02 dholland Exp $	 */
 
 /*-
  * Copyright (c) 1994, 2008 The NetBSD Foundation, Inc.
@@ -37,7 +37,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: svr4_32_misc.c,v 1.72 2010/11/30 10:29:58 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: svr4_32_misc.c,v 1.73 2010/11/30 10:43:02 dholland Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -1333,7 +1333,7 @@
 		return error;
 	}
 
-	NDINIT(&nd, LOOKUP, NOFOLLOW | SAVENAME | TRYEMULROOT, pb);
+	NDINIT(&nd, LOOKUP, NOFOLLOW | TRYEMULROOT, pb);
 	if ((error = namei(&nd)) != 0) {
 		pathbuf_destroy(pb);
 		return error;

Index: src/sys/fs/adosfs/adlookup.c
diff -u src/sys/fs/adosfs/adlookup.c:1.14 src/sys/fs/adosfs/adlookup.c:1.15
--- src/sys/fs/adosfs/adlookup.c:1.14	Thu Jun 24 13:03:08 2010
+++ src/sys/fs/adosfs/adlookup.c	Tue Nov 30 10:43:02 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: adlookup.c,v 1.14 2010/06/24 13:03:08 hannken Exp $	*/
+/*	$NetBSD: adlookup.c,v 1.15 2010/11/30 10:43:02 dholland Exp $	*/
 
 /*
  * Copyright (c) 1994 Christian E. Hopps
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: adlookup.c,v 1.14 2010/06/24 13:03:08 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: adlookup.c,v 1.15 2010/11/30 10:43:02 dholland Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -205,7 +205,6 @@
 #endif
 			return (error);
 		}
-		cnp->cn_nameiop |= SAVENAME;
 #ifdef ADOSFS_DIAGNOSTIC
 		printf("EJUSTRETURN)");
 #endif
@@ -236,7 +235,6 @@
 			*vpp = NULL;
 			return (error);
 		}
-		cnp->cn_flags |= SAVENAME;
 		nocache = 1;
 	}
 	if (vdp == *vpp)

Index: src/sys/fs/efs/efs_vnops.c
diff -u src/sys/fs/efs/efs_vnops.c:1.22 src/sys/fs/efs/efs_vnops.c:1.23
--- src/sys/fs/efs/efs_vnops.c:1.22	Thu Jun 24 13:03:09 2010
+++ src/sys/fs/efs/efs_vnops.c	Tue Nov 30 10:43:02 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: efs_vnops.c,v 1.22 2010/06/24 13:03:09 hannken Exp $	*/
+/*	$NetBSD: efs_vnops.c,v 1.23 2010/11/30 10:43:02 dholland Exp $	*/
 
 /*
  * Copyright (c) 2006 Stephen M. Rumble <rum...@ephemeral.org>
@@ -17,7 +17,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: efs_vnops.c,v 1.22 2010/06/24 13:03:09 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: efs_vnops.c,v 1.23 2010/11/30 10:43:02 dholland Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -111,7 +111,6 @@
 				    cnp->cn_cred);
 				if (err)
 					return (err);
-				cnp->cn_flags |= SAVENAME;
 				return (EJUSTRETURN);
 			}
 			return (err);

Index: src/sys/fs/msdosfs/msdosfs_lookup.c
diff -u src/sys/fs/msdosfs/msdosfs_lookup.c:1.22 src/sys/fs/msdosfs/msdosfs_lookup.c:1.23
--- src/sys/fs/msdosfs/msdosfs_lookup.c:1.22	Fri Jul 30 16:40:43 2010
+++ src/sys/fs/msdosfs/msdosfs_lookup.c	Tue Nov 30 10:43:03 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: msdosfs_lookup.c,v 1.22 2010/07/30 16:40:43 mlelstv Exp $	*/
+/*	$NetBSD: msdosfs_lookup.c,v 1.23 2010/11/30 10:43:03 dholland Exp $	*/
 
 /*-
  * Copyright (C) 1994, 1995, 1997 Wolfgang Solfrank.
@@ -48,7 +48,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: msdosfs_lookup.c,v 1.22 2010/07/30 16:40:43 mlelstv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: msdosfs_lookup.c,v 1.23 2010/11/30 10:43:03 dholland Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -381,13 +381,10 @@
 		 * We return ni_vp == NULL to indicate that the entry
 		 * does not currently exist; we leave a pointer to
 		 * the (locked) directory inode in ndp->ni_dvp.
-		 * The pathname buffer is saved so that the name
-		 * can be obtained later.
 		 *
 		 * NB - if the directory is unlocked, then this
 		 * information cannot be used.
 		 */
-		cnp->cn_flags |= SAVENAME;
 		return (EJUSTRETURN);
 	}
 
@@ -513,7 +510,6 @@
 		if ((error = deget(pmp, cluster, blkoff, &tdp)) != 0)
 			return (error);
 		*vpp = DETOV(tdp);
-		cnp->cn_flags |= SAVENAME;
 		return (0);
 	}
 

Index: src/sys/fs/msdosfs/msdosfs_vnops.c
diff -u src/sys/fs/msdosfs/msdosfs_vnops.c:1.69 src/sys/fs/msdosfs/msdosfs_vnops.c:1.70
--- src/sys/fs/msdosfs/msdosfs_vnops.c:1.69	Tue Nov 30 10:29:59 2010
+++ src/sys/fs/msdosfs/msdosfs_vnops.c	Tue Nov 30 10:43:03 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: msdosfs_vnops.c,v 1.69 2010/11/30 10:29:59 dholland Exp $	*/
+/*	$NetBSD: msdosfs_vnops.c,v 1.70 2010/11/30 10:43:03 dholland Exp $	*/
 
 /*-
  * Copyright (C) 1994, 1995, 1997 Wolfgang Solfrank.
@@ -48,7 +48,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: msdosfs_vnops.c,v 1.69 2010/11/30 10:29:59 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: msdosfs_vnops.c,v 1.70 2010/11/30 10:43:03 dholland Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -138,10 +138,6 @@
 	 * use the absence of the owner write bit to make the file
 	 * readonly.
 	 */
-#ifdef DIAGNOSTIC
-	if ((cnp->cn_flags & HASBUF) == 0)
-		panic("msdosfs_create: no name");
-#endif
 	memset(&ndirent, 0, sizeof(ndirent));
 	if ((error = uniqdosname(pdep, cnp, ndirent.de_Name)) != 0)
 		goto bad;
@@ -837,11 +833,6 @@
 
 	pmp = VFSTOMSDOSFS(fdvp->v_mount);
 
-#ifdef DIAGNOSTIC
-	if ((tcnp->cn_flags & HASBUF) == 0 ||
-	    (fcnp->cn_flags & HASBUF) == 0)
-		panic("msdosfs_rename: no name");
-#endif
 	/*
 	 * Check for cross-device rename.
 	 */
@@ -1273,10 +1264,6 @@
 	 * cluster.  This will be written to an empty slot in the parent
 	 * directory.
 	 */
-#ifdef DIAGNOSTIC
-	if ((cnp->cn_flags & HASBUF) == 0)
-		panic("msdosfs_mkdir: no name");
-#endif
 	if ((error = uniqdosname(pdep, cnp, ndirent.de_Name)) != 0)
 		goto bad;
 

Index: src/sys/fs/nilfs/nilfs_vnops.c
diff -u src/sys/fs/nilfs/nilfs_vnops.c:1.8 src/sys/fs/nilfs/nilfs_vnops.c:1.9
--- src/sys/fs/nilfs/nilfs_vnops.c:1.8	Tue Nov 30 10:29:59 2010
+++ src/sys/fs/nilfs/nilfs_vnops.c	Tue Nov 30 10:43:03 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: nilfs_vnops.c,v 1.8 2010/11/30 10:29:59 dholland Exp $ */
+/* $NetBSD: nilfs_vnops.c,v 1.9 2010/11/30 10:43:03 dholland Exp $ */
 
 /*
  * Copyright (c) 2008, 2009 Reinoud Zandijk
@@ -28,7 +28,7 @@
 
 #include <sys/cdefs.h>
 #ifndef lint
-__KERNEL_RCSID(0, "$NetBSD: nilfs_vnops.c,v 1.8 2010/11/30 10:29:59 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nilfs_vnops.c,v 1.9 2010/11/30 10:43:03 dholland Exp $");
 #endif /* not lint */
 
 
@@ -732,8 +732,6 @@
 			if (!error) {
 				error = VOP_ACCESS(dvp, VWRITE, cnp->cn_cred);
 				if (!error) {
-					/* keep the component name */
-					cnp->cn_flags |= SAVENAME;
 					error = EJUSTRETURN;
 				}
 			}

Index: src/sys/fs/puffs/puffs_vnops.c
diff -u src/sys/fs/puffs/puffs_vnops.c:1.148 src/sys/fs/puffs/puffs_vnops.c:1.149
--- src/sys/fs/puffs/puffs_vnops.c:1.148	Tue Nov 30 10:29:59 2010
+++ src/sys/fs/puffs/puffs_vnops.c	Tue Nov 30 10:43:03 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: puffs_vnops.c,v 1.148 2010/11/30 10:29:59 dholland Exp $	*/
+/*	$NetBSD: puffs_vnops.c,v 1.149 2010/11/30 10:43:03 dholland Exp $	*/
 
 /*
  * Copyright (c) 2005, 2006, 2007  Antti Kantee.  All Rights Reserved.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: puffs_vnops.c,v 1.148 2010/11/30 10:29:59 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: puffs_vnops.c,v 1.149 2010/11/30 10:43:03 dholland Exp $");
 
 #include <sys/param.h>
 #include <sys/buf.h>
@@ -541,7 +541,6 @@
 			} else if ((cnp->cn_flags & ISLASTCN)
 			    && (cnp->cn_nameiop == CREATE
 			      || cnp->cn_nameiop == RENAME)) {
-				cnp->cn_flags |= SAVENAME;
 				error = EJUSTRETURN;
 
 			/* save negative cache entry */
@@ -595,13 +594,6 @@
 		cnp->cn_consume = MIN(lookup_msg->pvnr_cn.pkcn_consume,
 		    strlen(cnp->cn_nameptr) - cnp->cn_namelen);
 
-	/*
-	 * We need the name in remove and rmdir (well, rename too, but
-	 * SAVESTART takes care of that)
-	 */
-	if (cnp->cn_nameiop == DELETE)
-		cnp->cn_flags |= SAVENAME;
-
  out:
 	if (cnp->cn_flags & ISDOTDOT)
 		vn_lock(dvp, LK_EXCLUSIVE | LK_RETRY);

Index: src/sys/fs/smbfs/smbfs_vnops.c
diff -u src/sys/fs/smbfs/smbfs_vnops.c:1.76 src/sys/fs/smbfs/smbfs_vnops.c:1.77
--- src/sys/fs/smbfs/smbfs_vnops.c:1.76	Tue Nov 30 10:30:00 2010
+++ src/sys/fs/smbfs/smbfs_vnops.c	Tue Nov 30 10:43:03 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: smbfs_vnops.c,v 1.76 2010/11/30 10:30:00 dholland Exp $	*/
+/*	$NetBSD: smbfs_vnops.c,v 1.77 2010/11/30 10:43:03 dholland Exp $	*/
 
 /*-
  * Copyright (c) 2003 The NetBSD Foundation, Inc.
@@ -64,7 +64,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: smbfs_vnops.c,v 1.76 2010/11/30 10:30:00 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: smbfs_vnops.c,v 1.77 2010/11/30 10:43:03 dholland Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -1237,9 +1237,6 @@
 			&& vattr.va_ctime.tv_sec == VTOSMB(newvp)->n_ctime)
 		{
 			/* nfsstats.lookupcache_hits++; */
-			if (cnp->cn_nameiop != LOOKUP && islastcn)
-				cnp->cn_flags |= SAVENAME;
-
 			return (0);
 		}
 
@@ -1292,7 +1289,6 @@
 			if (error)
 				return (error);
 
-			cnp->cn_flags |= SAVENAME;
 			return (EJUSTRETURN);
 		}
 
@@ -1322,7 +1318,6 @@
 			vn_lock(dvp, LK_EXCLUSIVE | LK_RETRY);
 		if (error)
 			return (error);
-		cnp->cn_flags |= SAVENAME;
 		return (0);
 	}
 
@@ -1353,9 +1348,6 @@
 			return error;
 	}
 
-	if (cnp->cn_nameiop != LOOKUP && (flags & ISLASTCN))
-		cnp->cn_flags |= SAVENAME;
-
 	if ((cnp->cn_flags & MAKEENTRY)) {
 		KASSERT(error == 0);
 		if (cnp->cn_nameiop != DELETE || !islastcn) {

Index: src/sys/fs/sysvbfs/sysvbfs_vnops.c
diff -u src/sys/fs/sysvbfs/sysvbfs_vnops.c:1.34 src/sys/fs/sysvbfs/sysvbfs_vnops.c:1.35
--- src/sys/fs/sysvbfs/sysvbfs_vnops.c:1.34	Tue Nov 30 10:30:00 2010
+++ src/sys/fs/sysvbfs/sysvbfs_vnops.c	Tue Nov 30 10:43:04 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: sysvbfs_vnops.c,v 1.34 2010/11/30 10:30:00 dholland Exp $	*/
+/*	$NetBSD: sysvbfs_vnops.c,v 1.35 2010/11/30 10:43:04 dholland Exp $	*/
 
 /*-
  * Copyright (c) 2004 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sysvbfs_vnops.c,v 1.34 2010/11/30 10:30:00 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sysvbfs_vnops.c,v 1.35 2010/11/30 10:43:04 dholland Exp $");
 
 #include <sys/param.h>
 #include <sys/kernel.h>
@@ -78,7 +78,6 @@
 	const char *name = cnp->cn_nameptr;
 	int namelen = cnp->cn_namelen;
 	int error;
-	bool islastcn = cnp->cn_flags & ISLASTCN;
 
 	DPRINTF("%s: %s op=%d %d\n", __func__, name, nameiop,
 	    cnp->cn_flags);
@@ -103,7 +102,6 @@
 			}
 			if ((error = VOP_ACCESS(v, VWRITE, cnp->cn_cred)) != 0)
 				return error;
-			cnp->cn_flags |= SAVENAME;
 			return EJUSTRETURN;
 		}
 
@@ -115,9 +113,6 @@
 		*a->a_vpp = vpp;
 	}
 
-	if (cnp->cn_nameiop != LOOKUP && islastcn)
-		cnp->cn_flags |= SAVENAME;
-
 	return 0;
 }
 

Index: src/sys/fs/tmpfs/tmpfs_subr.c
diff -u src/sys/fs/tmpfs/tmpfs_subr.c:1.60 src/sys/fs/tmpfs/tmpfs_subr.c:1.61
--- src/sys/fs/tmpfs/tmpfs_subr.c:1.60	Tue Nov 30 10:30:00 2010
+++ src/sys/fs/tmpfs/tmpfs_subr.c	Tue Nov 30 10:43:04 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: tmpfs_subr.c,v 1.60 2010/11/30 10:30:00 dholland Exp $	*/
+/*	$NetBSD: tmpfs_subr.c,v 1.61 2010/11/30 10:43:04 dholland Exp $	*/
 
 /*
  * Copyright (c) 2005, 2006, 2007 The NetBSD Foundation, Inc.
@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: tmpfs_subr.c,v 1.60 2010/11/30 10:30:00 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: tmpfs_subr.c,v 1.61 2010/11/30 10:43:04 dholland Exp $");
 
 #include <sys/param.h>
 #include <sys/dirent.h>
@@ -457,7 +457,6 @@
 	struct tmpfs_node *parent;
 
 	KASSERT(VOP_ISLOCKED(dvp));
-	KASSERT(cnp->cn_flags & HASBUF);
 
 	tmp = VFS_TO_TMPFS(dvp->v_mount);
 	dnode = VP_TO_TMPFS_DIR(dvp);

Index: src/sys/fs/tmpfs/tmpfs_vnops.c
diff -u src/sys/fs/tmpfs/tmpfs_vnops.c:1.74 src/sys/fs/tmpfs/tmpfs_vnops.c:1.75
--- src/sys/fs/tmpfs/tmpfs_vnops.c:1.74	Tue Nov 30 10:30:00 2010
+++ src/sys/fs/tmpfs/tmpfs_vnops.c	Tue Nov 30 10:43:04 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: tmpfs_vnops.c,v 1.74 2010/11/30 10:30:00 dholland Exp $	*/
+/*	$NetBSD: tmpfs_vnops.c,v 1.75 2010/11/30 10:43:04 dholland Exp $	*/
 
 /*
  * Copyright (c) 2005, 2006, 2007 The NetBSD Foundation, Inc.
@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: tmpfs_vnops.c,v 1.74 2010/11/30 10:30:00 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: tmpfs_vnops.c,v 1.75 2010/11/30 10:43:04 dholland Exp $");
 
 #include <sys/param.h>
 #include <sys/dirent.h>
@@ -203,8 +203,6 @@
 			if (error) {
 				goto out;
 			}
-			/* Keep the component name for future uses. */
-			cnp->cn_flags |= SAVENAME;
 			error = EJUSTRETURN;
 		} else {
 			error = ENOENT;
@@ -252,7 +250,6 @@
 			if (error) {
 				goto out;
 			}
-			cnp->cn_flags |= SAVENAME;
 		}
 		/* Allocate a new vnode on the matching entry. */
 		error = tmpfs_alloc_vp(dvp->v_mount, tnode, vpp);
@@ -747,7 +744,6 @@
 	struct tmpfs_node *node;
 
 	KASSERT(VOP_ISLOCKED(dvp));
-	KASSERT(cnp->cn_flags & HASBUF);
 	KASSERT(dvp != vp); /* XXX When can this be false? */
 
 	dnode = VP_TO_TMPFS_DIR(dvp);
@@ -841,8 +837,6 @@
 
 	KASSERT(VOP_ISLOCKED(tdvp));
 	KASSERT(IMPLIES(tvp != NULL, VOP_ISLOCKED(tvp) == LK_EXCLUSIVE));
-	KASSERT(fcnp->cn_flags & HASBUF);
-	KASSERT(tcnp->cn_flags & HASBUF);
 
 	newname = NULL;
 	namelen = 0;

Index: src/sys/fs/udf/udf_vnops.c
diff -u src/sys/fs/udf/udf_vnops.c:1.60 src/sys/fs/udf/udf_vnops.c:1.61
--- src/sys/fs/udf/udf_vnops.c:1.60	Tue Nov 30 10:30:01 2010
+++ src/sys/fs/udf/udf_vnops.c	Tue Nov 30 10:43:04 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: udf_vnops.c,v 1.60 2010/11/30 10:30:01 dholland Exp $ */
+/* $NetBSD: udf_vnops.c,v 1.61 2010/11/30 10:43:04 dholland Exp $ */
 
 /*
  * Copyright (c) 2006, 2008 Reinoud Zandijk
@@ -32,7 +32,7 @@
 
 #include <sys/cdefs.h>
 #ifndef lint
-__KERNEL_RCSID(0, "$NetBSD: udf_vnops.c,v 1.60 2010/11/30 10:30:01 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: udf_vnops.c,v 1.61 2010/11/30 10:43:04 dholland Exp $");
 #endif /* not lint */
 
 
@@ -762,8 +762,6 @@
 			if (!error) {
 				error = VOP_ACCESS(dvp, VWRITE, cnp->cn_cred);
 				if (!error) {
-					/* keep the component name */
-					cnp->cn_flags |= SAVENAME;
 					error = EJUSTRETURN;
 				}
 			}

Index: src/sys/fs/union/union_subr.c
diff -u src/sys/fs/union/union_subr.c:1.40 src/sys/fs/union/union_subr.c:1.41
--- src/sys/fs/union/union_subr.c:1.40	Tue Nov 30 10:30:01 2010
+++ src/sys/fs/union/union_subr.c	Tue Nov 30 10:43:04 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: union_subr.c,v 1.40 2010/11/30 10:30:01 dholland Exp $	*/
+/*	$NetBSD: union_subr.c,v 1.41 2010/11/30 10:43:04 dholland Exp $	*/
 
 /*
  * Copyright (c) 1994
@@ -72,7 +72,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: union_subr.c,v 1.40 2010/11/30 10:30:01 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: union_subr.c,v 1.41 2010/11/30 10:43:04 dholland Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -806,7 +806,7 @@
 	*pnbuf_ret = pnbuf;
 
 	cn->cn_nameiop = CREATE;
-	cn->cn_flags = (LOCKPARENT|HASBUF|SAVENAME|ISLASTCN);
+	cn->cn_flags = (LOCKPARENT|ISLASTCN);
 	if (um->um_op == UNMNT_ABOVE)
 		cn->cn_cred = cnp->cn_cred;
 	else
@@ -965,7 +965,7 @@
 	pnbuf = PNBUF_GET();
 	memcpy(pnbuf, un->un_path, cn.cn_namelen+1);
 	cn.cn_nameiop = CREATE;
-	cn.cn_flags = (LOCKPARENT|HASBUF|SAVENAME|ISLASTCN);
+	cn.cn_flags = (LOCKPARENT|ISLASTCN);
 	cn.cn_cred = l->l_cred;
 	cn.cn_nameptr = pnbuf;
 	cn.cn_hash = un->un_hash;

Index: src/sys/fs/unionfs/unionfs_subr.c
diff -u src/sys/fs/unionfs/unionfs_subr.c:1.10 src/sys/fs/unionfs/unionfs_subr.c:1.11
--- src/sys/fs/unionfs/unionfs_subr.c:1.10	Tue Nov 30 10:30:01 2010
+++ src/sys/fs/unionfs/unionfs_subr.c	Tue Nov 30 10:43:04 2010
@@ -310,7 +310,7 @@
 	pnbuf[pathlen] = '\0';
 
 	cn->cn_nameiop = nameiop;
-	cn->cn_flags = (LOCKPARENT | LOCKLEAF | HASBUF | SAVENAME | ISLASTCN);
+	cn->cn_flags = (LOCKPARENT | LOCKLEAF | ISLASTCN);
 	cn->cn_cred = cnp->cn_cred;
 
 	cn->cn_nameptr = pnbuf;
@@ -327,7 +327,6 @@
 	if ((error = relookup(dvp, vpp, cn))) {
 		PNBUF_PUT(pnbuf);
 		*pnbuf_ret = NULL;
-		cn->cn_flags &= ~HASBUF;
 		vn_lock(dvp, LK_EXCLUSIVE | LK_RETRY);
 	} else {
 		*pnbuf_ret = pnbuf;
@@ -626,7 +625,7 @@
 	pnbuf = PNBUF_GET();
 	memcpy(pnbuf, unp->un_path, cn.cn_namelen + 1);
 	cn.cn_nameiop = CREATE;
-	cn.cn_flags = (LOCKPARENT | LOCKLEAF | HASBUF | SAVENAME | ISLASTCN);
+	cn.cn_flags = (LOCKPARENT | LOCKLEAF | ISLASTCN);
 	cn.cn_cred = cred;
 	cn.cn_nameptr = pnbuf;
 	cn.cn_consume = 0;
@@ -861,7 +860,7 @@
 			cn.cn_namelen = dp->d_namlen;
 			cn.cn_nameptr = dp->d_name;
 			cn.cn_nameiop = LOOKUP;
-			cn.cn_flags = (LOCKPARENT | LOCKLEAF | SAVENAME | RDONLY | ISLASTCN);
+			cn.cn_flags = (LOCKPARENT | LOCKLEAF | RDONLY | ISLASTCN);
 			cn.cn_cred = cred;
 			cn.cn_consume = 0;
 
@@ -882,7 +881,7 @@
 			 * If it has no exist/whiteout entry in upper,
 			 * directory is not empty.
 			 */
-			cn.cn_flags = (LOCKPARENT | LOCKLEAF | SAVENAME | RDONLY | ISLASTCN);
+			cn.cn_flags = (LOCKPARENT | LOCKLEAF | RDONLY | ISLASTCN);
 			lookuperr = VOP_LOOKUP(uvp, &tvp, &cn);
 
 			if (!lookuperr)

Index: src/sys/fs/unionfs/unionfs_vnops.c
diff -u src/sys/fs/unionfs/unionfs_vnops.c:1.3 src/sys/fs/unionfs/unionfs_vnops.c:1.4
--- src/sys/fs/unionfs/unionfs_vnops.c:1.3	Thu Jun 24 13:03:11 2010
+++ src/sys/fs/unionfs/unionfs_vnops.c	Tue Nov 30 10:43:04 2010
@@ -49,6 +49,7 @@
 #include <sys/namei.h>
 #include <sys/sysctl.h>
 #include <sys/vnode.h>
+#include <sys/buf.h>
 #include <sys/fcntl.h>
 #include <sys/stat.h>
 #include <sys/dirent.h>
@@ -990,11 +991,6 @@
 	rtvp = tvp;
 	needrelookup = 0;
 
-#ifdef DIAGNOSTIC
-	if (!(fcnp->cn_flags & HASBUF) || !(tcnp->cn_flags & HASBUF))
-		panic("unionfs_rename: no name");
-#endif
-
 	/* check for cross device rename */
 	if (fvp->v_mount != tdvp->v_mount ||
 	    (tvp != NULLVP && fvp->v_mount != tvp->v_mount)) {

Index: src/sys/kern/kern_exec.c
diff -u src/sys/kern/kern_exec.c:1.302 src/sys/kern/kern_exec.c:1.303
--- src/sys/kern/kern_exec.c:1.302	Tue Nov 30 10:30:02 2010
+++ src/sys/kern/kern_exec.c	Tue Nov 30 10:43:05 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: kern_exec.c,v 1.302 2010/11/30 10:30:02 dholland Exp $	*/
+/*	$NetBSD: kern_exec.c,v 1.303 2010/11/30 10:43:05 dholland Exp $	*/
 
 /*-
  * Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -59,7 +59,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_exec.c,v 1.302 2010/11/30 10:30:02 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_exec.c,v 1.303 2010/11/30 10:43:05 dholland Exp $");
 
 #include "opt_ktrace.h"
 #include "opt_modular.h"
@@ -285,7 +285,7 @@
 	struct nameidata nd;
 	size_t		resid;
 
-	NDINIT(&nd, LOOKUP, FOLLOW | LOCKLEAF | SAVENAME | TRYEMULROOT, pb);
+	NDINIT(&nd, LOOKUP, FOLLOW | LOCKLEAF | TRYEMULROOT, pb);
 
 	/* first get the vnode */
 	if ((error = namei(&nd)) != 0)

Index: src/sys/kern/vfs_lookup.c
diff -u src/sys/kern/vfs_lookup.c:1.124 src/sys/kern/vfs_lookup.c:1.125
--- src/sys/kern/vfs_lookup.c:1.124	Tue Nov 30 10:30:02 2010
+++ src/sys/kern/vfs_lookup.c	Tue Nov 30 10:43:05 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: vfs_lookup.c,v 1.124 2010/11/30 10:30:02 dholland Exp $	*/
+/*	$NetBSD: vfs_lookup.c,v 1.125 2010/11/30 10:43:05 dholland Exp $	*/
 
 /*
  * Copyright (c) 1982, 1986, 1989, 1993
@@ -37,7 +37,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vfs_lookup.c,v 1.124 2010/11/30 10:30:02 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vfs_lookup.c,v 1.125 2010/11/30 10:43:05 dholland Exp $");
 
 #include "opt_magiclinks.h"
 
@@ -445,7 +445,6 @@
 		panic("namei: flags contaminated with nameiops");
 #endif
 
-	KASSERT((state->cnp->cn_flags & HASBUF) == 0);
 	/*
 	 * The buffer for name translation shall be the one inside the
 	 * pathbuf.

Index: src/sys/miscfs/genfs/genfs_vnops.c
diff -u src/sys/miscfs/genfs/genfs_vnops.c:1.184 src/sys/miscfs/genfs/genfs_vnops.c:1.185
--- src/sys/miscfs/genfs/genfs_vnops.c:1.184	Tue Nov 30 10:30:02 2010
+++ src/sys/miscfs/genfs/genfs_vnops.c	Tue Nov 30 10:43:05 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: genfs_vnops.c,v 1.184 2010/11/30 10:30:02 dholland Exp $	*/
+/*	$NetBSD: genfs_vnops.c,v 1.185 2010/11/30 10:43:05 dholland Exp $	*/
 
 /*-
  * Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -57,7 +57,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: genfs_vnops.c,v 1.184 2010/11/30 10:30:02 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: genfs_vnops.c,v 1.185 2010/11/30 10:43:05 dholland Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -188,7 +188,7 @@
 	KASSERT(desc->vdesc_offset != VOP_ABORTOP_DESCOFFSET);
 
 	/*
-	 * Free componentname that lookup potentially SAVENAMEd.
+	 * Abort any componentname that lookup potentially left state in.
 	 *
 	 * As is logical, componentnames for VOP_RENAME are handled by
 	 * the caller of VOP_RENAME.  Yay, rename!

Index: src/sys/nfs/nfs_vnops.c
diff -u src/sys/nfs/nfs_vnops.c:1.286 src/sys/nfs/nfs_vnops.c:1.287
--- src/sys/nfs/nfs_vnops.c:1.286	Tue Nov 30 10:30:03 2010
+++ src/sys/nfs/nfs_vnops.c	Tue Nov 30 10:43:05 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: nfs_vnops.c,v 1.286 2010/11/30 10:30:03 dholland Exp $	*/
+/*	$NetBSD: nfs_vnops.c,v 1.287 2010/11/30 10:43:05 dholland Exp $	*/
 
 /*
  * Copyright (c) 1989, 1993
@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: nfs_vnops.c,v 1.286 2010/11/30 10:30:03 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nfs_vnops.c,v 1.287 2010/11/30 10:43:05 dholland Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_nfs.h"
@@ -800,8 +800,6 @@
 			return EISDIR;
 		vref(dvp);
 		*vpp = dvp;
-		if (cnp->cn_nameiop != LOOKUP && (flags & ISLASTCN))
-			cnp->cn_flags |= SAVENAME;
 		return 0;
 	}
 
@@ -872,8 +870,6 @@
 		if (!VOP_GETATTR(newvp, &vattr, cnp->cn_cred)
 		    && vattr.va_ctime.tv_sec == VTONFS(newvp)->n_ctime) {
 			nfsstats.lookupcache_hits++;
-			if (cnp->cn_nameiop != LOOKUP && (flags & ISLASTCN))
-				cnp->cn_flags |= SAVENAME;
 			KASSERT(newvp->v_type != VNON);
 			return (0);
 		}
@@ -894,7 +890,6 @@
 	if (v3 && cnp->cn_nameiop == CREATE &&
 	    (flags & (ISLASTCN|ISDOTDOT)) == ISLASTCN &&
 	    (dvp->v_mount->mnt_flag & MNT_RDONLY) == 0) {
-		cnp->cn_flags |= SAVENAME;
 		return (EJUSTRETURN);
 	}
 #endif /* 0 */
@@ -939,7 +934,6 @@
 			nfsm_loadattr(newvp, (struct vattr *)0, 0);
 		*vpp = newvp;
 		m_freem(mrep);
-		cnp->cn_flags |= SAVENAME;
 		goto validate;
 	}
 
@@ -1001,8 +995,6 @@
 #endif
 			nfsm_loadattr(newvp, (struct vattr *)0, 0);
 	}
-	if (cnp->cn_nameiop != LOOKUP && (flags & ISLASTCN))
-		cnp->cn_flags |= SAVENAME;
 	if ((cnp->cn_flags & MAKEENTRY) &&
 	    (cnp->cn_nameiop != DELETE || !(flags & ISLASTCN))) {
 		nfs_cache_enter(dvp, newvp, cnp);
@@ -1034,7 +1026,6 @@
 				error = EROFS;
 			} else {
 				error = EJUSTRETURN;
-				cnp->cn_flags |= SAVENAME;
 			}
 		}
 		*vpp = NULL;
@@ -1767,8 +1758,6 @@
 	struct vattr vattr;
 
 #ifndef DIAGNOSTIC
-	if ((cnp->cn_flags & HASBUF) == 0)
-		panic("nfs_remove: no name");
 	if (vp->v_usecount < 1)
 		panic("nfs_remove: bad v_usecount");
 #endif
@@ -1889,11 +1878,6 @@
 	struct componentname *fcnp = ap->a_fcnp;
 	int error;
 
-#ifndef DIAGNOSTIC
-	if ((tcnp->cn_flags & HASBUF) == 0 ||
-	    (fcnp->cn_flags & HASBUF) == 0)
-		panic("nfs_rename: no name");
-#endif
 	/* Check for cross-device rename */
 	if ((fvp->v_mount != tdvp->v_mount) ||
 	    (tvp && (fvp->v_mount != tvp->v_mount))) {

Index: src/sys/sys/namei.src
diff -u src/sys/sys/namei.src:1.16 src/sys/sys/namei.src:1.17
--- src/sys/sys/namei.src:1.16	Tue Nov 30 10:29:57 2010
+++ src/sys/sys/namei.src	Tue Nov 30 10:43:01 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: namei.src,v 1.16 2010/11/30 10:29:57 dholland Exp $	*/
+/*	$NetBSD: namei.src,v 1.17 2010/11/30 10:43:01 dholland Exp $	*/
 
 /*
  * Copyright (c) 1985, 1989, 1991, 1993
@@ -150,21 +150,13 @@
 /*
  * Namei parameter descriptors.
  *
- * SAVENAME may be set by either the callers of namei or by VOP_LOOKUP.
- * If the caller of namei sets the flag (for example execve wants to
- * know the name of the program that is being executed), then it must
- * free the buffer. If VOP_LOOKUP sets the flag, then the buffer must
- * be freed by either the commit routine or the VOP_ABORT routine.
- * SAVESTART is set only by the callers of namei. It implies SAVENAME
- * plus the addition of saving the parent directory that contains the
- * name in ni_startdir. It allows repeated calls to lookup for the
- * name being sought. The caller is responsible for releasing the
- * buffer and for vrele'ing ni_startdir.
+ * SAVESTART is set only by the callers of namei. It implies saving
+ * the parent directory that contains the name in ni_startdir. It
+ * allows repeated calls to lookup for the name being sought. The
+ * caller is responsible for vrele'ing ni_startdir.
  */
 NAMEIFL	NOCROSSMOUNT	0x0000100	/* do not cross mount points */
 NAMEIFL	RDONLY		0x0000200	/* lookup with read-only semantics */
-NAMEIFL	HASBUF		0x0000400	/* has allocated pathname buffer */
-NAMEIFL	SAVENAME	0x0000800	/* save pathname buffer */
 NAMEIFL	SAVESTART	0x0001000	/* save starting directory */
 NAMEIFL	ISDOTDOT	0x0002000	/* current component name is .. */
 NAMEIFL	MAKEENTRY	0x0004000	/* entry is to be added to name cache */

Index: src/sys/ufs/ext2fs/ext2fs_lookup.c
diff -u src/sys/ufs/ext2fs/ext2fs_lookup.c:1.62 src/sys/ufs/ext2fs/ext2fs_lookup.c:1.63
--- src/sys/ufs/ext2fs/ext2fs_lookup.c:1.62	Thu Jun 24 13:03:18 2010
+++ src/sys/ufs/ext2fs/ext2fs_lookup.c	Tue Nov 30 10:43:06 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: ext2fs_lookup.c,v 1.62 2010/06/24 13:03:18 hannken Exp $	*/
+/*	$NetBSD: ext2fs_lookup.c,v 1.63 2010/11/30 10:43:06 dholland Exp $	*/
 
 /*
  * Modified for NetBSD 1.2E
@@ -48,7 +48,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ext2fs_lookup.c,v 1.62 2010/06/24 13:03:18 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ext2fs_lookup.c,v 1.63 2010/11/30 10:43:06 dholland Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -518,13 +518,10 @@
 		 * We return ni_vp == NULL to indicate that the entry
 		 * does not currently exist; we leave a pointer to
 		 * the (locked) directory inode in ndp->ni_dvp.
-		 * The pathname buffer is saved so that the name
-		 * can be obtained later.
 		 *
 		 * NB - if the directory is unlocked, then this
 		 * information cannot be used.
 		 */
-		cnp->cn_flags |= SAVENAME;
 		return (EJUSTRETURN);
 	}
 	/*
@@ -636,7 +633,6 @@
 		if (error)
 			return (error);
 		*vpp = tdp;
-		cnp->cn_flags |= SAVENAME;
 		return (0);
 	}
 
@@ -756,10 +752,6 @@
 	struct ufsmount *ump = VFSTOUFS(dvp->v_mount);
 	int dirblksiz = ump->um_dirblksiz;
 
-#ifdef DIAGNOSTIC
-	if ((cnp->cn_flags & SAVENAME) == 0)
-		panic("direnter: missing name");
-#endif
 	dp = VTOI(dvp);
 	newdir.e2d_ino = h2fs32(ip->i_number);
 	newdir.e2d_namlen = cnp->cn_namelen;

Index: src/sys/ufs/ext2fs/ext2fs_vnops.c
diff -u src/sys/ufs/ext2fs/ext2fs_vnops.c:1.95 src/sys/ufs/ext2fs/ext2fs_vnops.c:1.96
--- src/sys/ufs/ext2fs/ext2fs_vnops.c:1.95	Tue Nov 30 10:30:03 2010
+++ src/sys/ufs/ext2fs/ext2fs_vnops.c	Tue Nov 30 10:43:06 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: ext2fs_vnops.c,v 1.95 2010/11/30 10:30:03 dholland Exp $	*/
+/*	$NetBSD: ext2fs_vnops.c,v 1.96 2010/11/30 10:43:06 dholland Exp $	*/
 
 /*
  * Copyright (c) 1982, 1986, 1989, 1993
@@ -65,7 +65,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ext2fs_vnops.c,v 1.95 2010/11/30 10:30:03 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ext2fs_vnops.c,v 1.96 2010/11/30 10:43:06 dholland Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -568,10 +568,6 @@
 	struct inode *ip;
 	int error;
 
-#ifdef DIAGNOSTIC
-	if ((cnp->cn_flags & HASBUF) == 0)
-		panic("ext2fs_link: no name");
-#endif
 	if (vp->v_type == VDIR) {
 		VOP_ABORTOP(dvp, cnp);
 		error = EISDIR;
@@ -663,11 +659,6 @@
 	int error = 0;
 	u_char namlen;
 
-#ifdef DIAGNOSTIC
-	if ((tcnp->cn_flags & HASBUF) == 0 ||
-	    (fcnp->cn_flags & HASBUF) == 0)
-		panic("ext2fs_rename: no name");
-#endif
 	/*
 	 * Check for cross-device rename.
 	 */
@@ -1060,10 +1051,6 @@
 	struct ext2fs_dirtemplate dirtemplate;
 	int			error, dmode;
 
-#ifdef DIAGNOSTIC
-	if ((cnp->cn_flags & HASBUF) == 0)
-		panic("ext2fs_mkdir: no name");
-#endif
 	if ((nlink_t)dp->i_e2fs_nlink >= LINK_MAX) {
 		error = EMLINK;
 		goto out;
@@ -1425,10 +1412,6 @@
 	int error, ismember = 0;
 
 	pdir = VTOI(dvp);
-#ifdef DIAGNOSTIC
-	if ((cnp->cn_flags & HASBUF) == 0)
-		panic("ext2fs_makeinode: no name");
-#endif
 	*vpp = NULL;
 	if ((mode & IFMT) == 0)
 		mode |= IFREG;

Index: src/sys/ufs/ufs/ufs_lookup.c
diff -u src/sys/ufs/ufs/ufs_lookup.c:1.105 src/sys/ufs/ufs/ufs_lookup.c:1.106
--- src/sys/ufs/ufs/ufs_lookup.c:1.105	Thu Jun 24 13:03:20 2010
+++ src/sys/ufs/ufs/ufs_lookup.c	Tue Nov 30 10:43:06 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: ufs_lookup.c,v 1.105 2010/06/24 13:03:20 hannken Exp $	*/
+/*	$NetBSD: ufs_lookup.c,v 1.106 2010/11/30 10:43:06 dholland Exp $	*/
 
 /*
  * Copyright (c) 1989, 1993
@@ -37,7 +37,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ufs_lookup.c,v 1.105 2010/06/24 13:03:20 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ufs_lookup.c,v 1.106 2010/11/30 10:43:06 dholland Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_ffs.h"
@@ -465,13 +465,10 @@
 		 * We return ni_vp == NULL to indicate that the entry
 		 * does not currently exist; we leave a pointer to
 		 * the (locked) directory inode in ndp->ni_dvp.
-		 * The pathname buffer is saved so that the name
-		 * can be obtained later.
 		 *
 		 * NB - if the directory is unlocked, then this
 		 * information cannot be used.
 		 */
-		cnp->cn_flags |= SAVENAME;
 		error = EJUSTRETURN;
 		goto out;
 	}
@@ -588,7 +585,6 @@
 		if (error)
 			goto out;
 		*vpp = tdp;
-		cnp->cn_flags |= SAVENAME;
 		error = 0;
 		goto out;
 	}
@@ -723,10 +719,6 @@
 ufs_makedirentry(struct inode *ip, struct componentname *cnp,
     struct direct *newdirp)
 {
-#ifdef DIAGNOSTIC
-	if ((cnp->cn_flags & SAVENAME) == 0)
-		panic("makedirentry: missing name");
-#endif
 	newdirp->d_ino = ip->i_number;
 	newdirp->d_namlen = cnp->cn_namelen;
 	memcpy(newdirp->d_name, cnp->cn_nameptr, (size_t)cnp->cn_namelen);

Index: src/sys/ufs/ufs/ufs_vnops.c
diff -u src/sys/ufs/ufs/ufs_vnops.c:1.184 src/sys/ufs/ufs/ufs_vnops.c:1.185
--- src/sys/ufs/ufs/ufs_vnops.c:1.184	Tue Nov 30 10:30:04 2010
+++ src/sys/ufs/ufs/ufs_vnops.c	Tue Nov 30 10:43:06 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: ufs_vnops.c,v 1.184 2010/11/30 10:30:04 dholland Exp $	*/
+/*	$NetBSD: ufs_vnops.c,v 1.185 2010/11/30 10:43:06 dholland Exp $	*/
 
 /*-
  * Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -66,7 +66,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ufs_vnops.c,v 1.184 2010/11/30 10:30:04 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ufs_vnops.c,v 1.185 2010/11/30 10:43:06 dholland Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_ffs.h"
@@ -804,10 +804,7 @@
 	dvp = ap->a_dvp;
 	vp = ap->a_vp;
 	cnp = ap->a_cnp;
-#ifdef DIAGNOSTIC
-	if ((cnp->cn_flags & HASBUF) == 0)
-		panic("ufs_link: no name");
-#endif
+
 	fstrans_start(dvp->v_mount, FSTRANS_SHARED);
 	if (vp->v_type == VDIR) {
 		VOP_ABORTOP(dvp, cnp);
@@ -896,8 +893,6 @@
 		/* create a new directory whiteout */
 		fstrans_start(dvp->v_mount, FSTRANS_SHARED);
 #ifdef DIAGNOSTIC
-		if ((cnp->cn_flags & SAVENAME) == 0)
-			panic("ufs_whiteout: missing name");
 		if (ump->um_maxsymlinklen <= 0)
 			panic("ufs_whiteout: old format filesystem");
 #endif
@@ -988,11 +983,6 @@
 	fcnp = ap->a_fcnp;
 	doingdirectory = oldparent = newparent = error = 0;
 
-#ifdef DIAGNOSTIC
-	if ((tcnp->cn_flags & HASBUF) == 0 ||
-	    (fcnp->cn_flags & HASBUF) == 0)
-		panic("ufs_rename: no name");
-#endif
 	/*
 	 * Check for cross-device rename.
 	 */
@@ -1366,10 +1356,6 @@
 
 	fstrans_start(dvp->v_mount, FSTRANS_SHARED);
 
-#ifdef DIAGNOSTIC
-	if ((cnp->cn_flags & HASBUF) == 0)
-		panic("ufs_mkdir: no name");
-#endif
 	if ((nlink_t)dp->i_nlink >= LINK_MAX) {
 		error = EMLINK;
 		goto out;
@@ -2177,10 +2163,7 @@
 	UFS_WAPBL_JUNLOCK_ASSERT(dvp->v_mount);
 
 	pdir = VTOI(dvp);
-#ifdef DIAGNOSTIC
-	if ((cnp->cn_flags & HASBUF) == 0)
-		panic("ufs_makeinode: no name");
-#endif
+
 	if ((mode & IFMT) == 0)
 		mode |= IFREG;
 

Index: src/sys/ufs/ufs/ufs_wapbl.c
diff -u src/sys/ufs/ufs/ufs_wapbl.c:1.10 src/sys/ufs/ufs/ufs_wapbl.c:1.11
--- src/sys/ufs/ufs/ufs_wapbl.c:1.10	Thu Jun 24 13:03:20 2010
+++ src/sys/ufs/ufs/ufs_wapbl.c	Tue Nov 30 10:43:06 2010
@@ -1,4 +1,4 @@
-/*  $NetBSD: ufs_wapbl.c,v 1.10 2010/06/24 13:03:20 hannken Exp $ */
+/*  $NetBSD: ufs_wapbl.c,v 1.11 2010/11/30 10:43:06 dholland Exp $ */
 
 /*-
  * Copyright (c) 2003,2006,2008 The NetBSD Foundation, Inc.
@@ -66,7 +66,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ufs_wapbl.c,v 1.10 2010/06/24 13:03:20 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ufs_wapbl.c,v 1.11 2010/11/30 10:43:06 dholland Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -178,11 +178,6 @@
 	fcnp = ap->a_fcnp;
 	doingdirectory = oldparent = newparent = error = 0;
 
-#ifdef DIAGNOSTIC
-	if ((tcnp->cn_flags & HASBUF) == 0 ||
-	    (fcnp->cn_flags & HASBUF) == 0)
-		panic("ufs_rename: no name");
-#endif
 	/*
 	 * Check for cross-device rename.
 	 */

Reply via email to