--- src/sys/emulation/svr4/Attic/svr4_misc.c 2004/10/12 19:20:42 1.25 +++ src/sys/emulation/svr4/Attic/svr4_misc.c 2004/11/12 00:09:22 1.26 @@ -41,7 +41,7 @@ #include #include #include -#include +#include #include #include #include @@ -1651,27 +1651,26 @@ svr4_sys_nice(struct svr4_sys_nice_args int svr4_sys_resolvepath(struct svr4_sys_resolvepath_args *uap) { - struct thread *td = curthread; /* XXX */ - struct nameidata nd; + struct nlookupdata nd; int error; int *retval; retval = &uap->sysmsg_result; - NDINIT(&nd, NAMEI_LOOKUP, CNP_SAVENAME, UIO_USERSPACE, - SCARG(uap, path), td); - - if ((error = namei(&nd)) != 0) - return error; + error = nlookup_init(&nd, SCARG(uap, path), UIO_USERSPACE, 0); + if (error == 0) + error = nlookup(&nd); + if (error) + goto bad; - if ((error = copyout(nd.ni_cnd.cn_pnbuf, SCARG(uap, buf), - SCARG(uap, bufsiz))) != 0) + if ((error = copyout(nd.nl_path, SCARG(uap, buf), + SCARG(uap, bufsiz))) != 0) { goto bad; + } - *retval = strlen(nd.ni_cnd.cn_pnbuf) < SCARG(uap, bufsiz) ? - strlen(nd.ni_cnd.cn_pnbuf) + 1 : SCARG(uap, bufsiz); + *retval = strlen(nd.nl_path) < SCARG(uap, bufsiz) ? + strlen(nd.nl_path) + 1 : SCARG(uap, bufsiz); bad: - NDFREE(&nd, NDF_ONLY_PNBUF); - vput(nd.ni_vp); - return error; + nlookup_done(&nd); + return (error); }