svn commit: r189076 - head/sys/kern

Ed Schouten ed at FreeBSD.org
Thu Feb 26 08:32:50 PST 2009


Author: ed
Date: Thu Feb 26 16:32:48 2009
New Revision: 189076
URL: http://svn.freebsd.org/changeset/base/189076

Log:
  Remove unneeded pointer `ndp'.
  
  Inside do_execve(), we have a pointer `ndp', which always points to
  `&nd'. I can imagine a primitive (non-optimizing) compiler to really
  reserve space for such a pointer, so just remove the variable and use
  `&nd' directly.

Modified:
  head/sys/kern/kern_exec.c

Modified: head/sys/kern/kern_exec.c
==============================================================================
--- head/sys/kern/kern_exec.c	Thu Feb 26 15:59:22 2009	(r189075)
+++ head/sys/kern/kern_exec.c	Thu Feb 26 16:32:48 2009	(r189076)
@@ -318,7 +318,7 @@ do_execve(td, args, mac_p)
 	struct mac *mac_p;
 {
 	struct proc *p = td->td_proc;
-	struct nameidata nd, *ndp;
+	struct nameidata nd;
 	struct ucred *newcred = NULL, *oldcred;
 	struct uidinfo *euip;
 	register_t *stack_base;
@@ -396,8 +396,7 @@ do_execve(td, args, mac_p)
 	 * interpreter if this is an interpreted binary.
 	 */
 	if (args->fname != NULL) {
-		ndp = &nd;
-		NDINIT(ndp, LOOKUP, ISOPEN | LOCKLEAF | FOLLOW | SAVENAME
+		NDINIT(&nd, LOOKUP, ISOPEN | LOCKLEAF | FOLLOW | SAVENAME
 		    | MPSAFE | AUDITVNODE1, UIO_SYSSPACE, args->fname, td);
 	}
 
@@ -405,12 +404,12 @@ do_execve(td, args, mac_p)
 
 interpret:
 	if (args->fname != NULL) {
-		error = namei(ndp);
+		error = namei(&nd);
 		if (error)
 			goto exec_fail;
 
-		vfslocked = NDHASGIANT(ndp);
-		binvp  = ndp->ni_vp;
+		vfslocked = NDHASGIANT(&nd);
+		binvp  = nd.ni_vp;
 		imgp->vp = binvp;
 	} else {
 		AUDIT_ARG(fd, args->fd);
@@ -495,7 +494,7 @@ interpret:
 		imgp->vp->v_vflag &= ~VV_TEXT;
 		/* free name buffer and old vnode */
 		if (args->fname != NULL)
-			NDFREE(ndp, NDF_ONLY_PNBUF);
+			NDFREE(&nd, NDF_ONLY_PNBUF);
 #ifdef MAC
 		mac_execve_interpreter_enter(binvp, &interpvplabel);
 #endif
@@ -509,7 +508,7 @@ interpret:
 		VFS_UNLOCK_GIANT(vfslocked);
 		vfslocked = 0;
 		/* set new name to that of the interpreter */
-		NDINIT(ndp, LOOKUP, LOCKLEAF | FOLLOW | SAVENAME | MPSAFE,
+		NDINIT(&nd, LOOKUP, LOCKLEAF | FOLLOW | SAVENAME | MPSAFE,
 		    UIO_SYSSPACE, imgp->interpreter_name, td);
 		args->fname = imgp->interpreter_name;
 		goto interpret;
@@ -588,8 +587,8 @@ interpret:
 
 	/* name this process - nameiexec(p, ndp) */
 	if (args->fname) {
-		len = min(ndp->ni_cnd.cn_namelen,MAXCOMLEN);
-		bcopy(ndp->ni_cnd.cn_nameptr, p->p_comm, len);
+		len = min(nd.ni_cnd.cn_namelen,MAXCOMLEN);
+		bcopy(nd.ni_cnd.cn_nameptr, p->p_comm, len);
 	} else {
 		if (vn_commname(binvp, p->p_comm, MAXCOMLEN + 1) == 0)
 			len = MAXCOMLEN;
@@ -851,7 +850,7 @@ exec_fail_dealloc:
 
 	if (imgp->vp != NULL) {
 		if (args->fname)
-			NDFREE(ndp, NDF_ONLY_PNBUF);
+			NDFREE(&nd, NDF_ONLY_PNBUF);
 		if (imgp->opened)
 			VOP_CLOSE(imgp->vp, FREAD, td->td_ucred, td);
 		vput(imgp->vp);


More information about the svn-src-all mailing list