svn commit: r192455 - head/sys/compat/svr4

John Baldwin jhb at FreeBSD.org
Wed May 20 18:25:18 UTC 2009


Author: jhb
Date: Wed May 20 18:25:16 2009
New Revision: 192455
URL: http://svn.freebsd.org/changeset/base/192455

Log:
  Put the vnode returned from namei() immediately after namei() returns in
  svr4_sys_resolvepath().

Modified:
  head/sys/compat/svr4/svr4_misc.c

Modified: head/sys/compat/svr4/svr4_misc.c
==============================================================================
--- head/sys/compat/svr4/svr4_misc.c	Wed May 20 18:16:45 2009	(r192454)
+++ head/sys/compat/svr4/svr4_misc.c	Wed May 20 18:25:16 2009	(r192455)
@@ -1611,14 +1611,14 @@ svr4_sys_resolvepath(td, uap)
 	struct nameidata nd;
 	int error, *retval = td->td_retval;
 	unsigned int ncopy;
-	int vfslocked;
 
 	NDINIT(&nd, LOOKUP, NOFOLLOW | SAVENAME | MPSAFE, UIO_USERSPACE,
 	    uap->path, td);
 
 	if ((error = namei(&nd)) != 0)
-		return error;
-	vfslocked = NDHASGIANT(&nd);
+		return (error);
+	NDFREE(&nd, NDF_NO_FREE_PNBUF);
+	VFS_UNLOCK_GIANT(NDHASGIANT(&nd));
 
 	ncopy = min(uap->bufsiz, strlen(nd.ni_cnd.cn_pnbuf) + 1);
 	if ((error = copyout(nd.ni_cnd.cn_pnbuf, uap->buf, ncopy)) != 0)
@@ -1627,7 +1627,5 @@ svr4_sys_resolvepath(td, uap)
 	*retval = ncopy;
 bad:
 	NDFREE(&nd, NDF_ONLY_PNBUF);
-	vput(nd.ni_vp);
-	VFS_UNLOCK_GIANT(vfslocked);
 	return error;
 }


More information about the svn-src-all mailing list