From ff5f695e7894a3c2c8d2203daa83b21ced92209f Mon Sep 17 00:00:00 2001 From: Don Lewis Date: Wed, 14 Jan 2004 22:38:03 +0000 Subject: [PATCH] VOP_GETATTR() wants the vnode passed to it to be locked. Instead of adding the code to lock and unlock the vnodes and taking care to avoid deadlock, simplify linux_emul_convpath() by comparing the vnode pointers directly instead of comparing their va_fsid and va_fileid attributes. This allows the removal of the calls to VOP_GETATTR(). --- sys/compat/linux/linux_util.c | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/sys/compat/linux/linux_util.c b/sys/compat/linux/linux_util.c index 25e31bc0573..7b8ddb7a805 100644 --- a/sys/compat/linux/linux_util.c +++ b/sys/compat/linux/linux_util.c @@ -96,8 +96,6 @@ linux_emul_convpath(td, path, pathseg, pbuf, cflag) { struct nameidata nd; struct nameidata ndroot; - struct vattr vat; - struct vattr vatroot; int error; const char *prefix; char *ptr, *buf, *cp; @@ -169,17 +167,7 @@ linux_emul_convpath(td, path, pathseg, pbuf, cflag) goto keeporig; } - if ((error = VOP_GETATTR(nd.ni_vp, &vat, td->td_ucred, td)) != 0) { - goto bad; - } - - if ((error = VOP_GETATTR(ndroot.ni_vp, &vatroot, td->td_ucred, td)) - != 0) { - goto bad; - } - - if (vat.va_fsid == vatroot.va_fsid && - vat.va_fileid == vatroot.va_fileid) { + if (nd.ni_vp == ndroot.ni_vp) { error = ENOENT; goto bad; }