From owner-dev-commits-src-all@freebsd.org  Mon Feb  1 05:43:02 2021
Return-Path: <owner-dev-commits-src-all@freebsd.org>
Delivered-To: dev-commits-src-all@mailman.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0C7545238D4;
 Mon,  1 Feb 2021 05:43:02 +0000 (UTC) (envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
 client-signature RSA-PSS (4096 bits) client-digest SHA256)
 (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 4DTcKx70sDz4hkR;
 Mon,  1 Feb 2021 05:43:01 +0000 (UTC) (envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:5])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E353B1628A;
 Mon,  1 Feb 2021 05:43:01 +0000 (UTC) (envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
 by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 1115h1IV051348;
 Mon, 1 Feb 2021 05:43:01 GMT (envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
 by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 1115h1xj051347;
 Mon, 1 Feb 2021 05:43:01 GMT (envelope-from git)
Date: Mon, 1 Feb 2021 05:43:01 GMT
Message-Id: <202102010543.1115h1xj051347@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
 dev-commits-src-branches@FreeBSD.org
From: Kyle Evans <kevans@FreeBSD.org>
Subject: git: b06fd805cc87 - stable/13 - tmpfs: push VEXEC check into
 tmpfs_lookup()
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: kevans
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: b06fd805cc871cbde03d3ce8310adf09c9d581b4
Auto-Submitted: auto-generated
X-BeenThere: dev-commits-src-all@freebsd.org
X-Mailman-Version: 2.1.34
Precedence: list
List-Id: Commit messages for all branches of the src repository
 <dev-commits-src-all.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/dev-commits-src-all>, 
 <mailto:dev-commits-src-all-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/dev-commits-src-all/>
List-Post: <mailto:dev-commits-src-all@freebsd.org>
List-Help: <mailto:dev-commits-src-all-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/dev-commits-src-all>, 
 <mailto:dev-commits-src-all-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 01 Feb 2021 05:43:02 -0000

The branch stable/13 has been updated by kevans:

URL: https://cgit.FreeBSD.org/src/commit/?id=b06fd805cc871cbde03d3ce8310adf09c9d581b4

commit b06fd805cc871cbde03d3ce8310adf09c9d581b4
Author:     Kyle Evans <kevans@FreeBSD.org>
AuthorDate: 2021-01-28 14:27:28 +0000
Commit:     Kyle Evans <kevans@FreeBSD.org>
CommitDate: 2021-02-01 05:42:30 +0000

    tmpfs: push VEXEC check into tmpfs_lookup()
    
    vfs_cache_lookup() has already done the appropriate VEXEC check, therefore
    we must not re-check in VOP_CACHEDLOOKUP.
    
    This fixes O_SEARCH semantics on tmpfs and removes a redundant descent into
    VOP_ACCESS() in the common case.
    
    (cherry picked from commit 0f919ed4ae4df082eefb517afe02752b1790afd3)
---
 sys/fs/tmpfs/tmpfs_vnops.c | 17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)

diff --git a/sys/fs/tmpfs/tmpfs_vnops.c b/sys/fs/tmpfs/tmpfs_vnops.c
index 66568e07b4d7..f77692a10690 100644
--- a/sys/fs/tmpfs/tmpfs_vnops.c
+++ b/sys/fs/tmpfs/tmpfs_vnops.c
@@ -91,14 +91,10 @@ tmpfs_lookup1(struct vnode *dvp, struct vnode **vpp, struct componentname *cnp)
 	struct tmpfs_mount *tm;
 	int error;
 
+	/* Caller assumes responsibility for ensuring access (VEXEC). */
 	dnode = VP_TO_TMPFS_DIR(dvp);
 	*vpp = NULLVP;
 
-	/* Check accessibility of requested node as a first step. */
-	error = vn_dir_check_exec(dvp, cnp);
-	if (error != 0)
-		goto out;
-
 	/* We cannot be requesting the parent directory of the root node. */
 	MPASS(IMPLIES(dnode->tn_type == VDIR &&
 	    dnode->tn_dir.tn_parent == dnode,
@@ -241,8 +237,17 @@ tmpfs_cached_lookup(struct vop_cachedlookup_args *v)
 static int
 tmpfs_lookup(struct vop_lookup_args *v)
 {
+	struct vnode *dvp = v->a_dvp;
+	struct vnode **vpp = v->a_vpp;
+	struct componentname *cnp = v->a_cnp;
+	int error;
 
-	return (tmpfs_lookup1(v->a_dvp, v->a_vpp, v->a_cnp));
+	/* Check accessibility of requested node as a first step. */
+	error = vn_dir_check_exec(dvp, cnp);
+	if (error != 0)
+		return (error);
+
+	return (tmpfs_lookup1(dvp, vpp, cnp));
 }
 
 static int