From 0f4b850e85130fd11b611830dce7abde0d6457e7 Mon Sep 17 00:00:00 2001 From: Mateusz Guzik Date: Sat, 30 Nov 2019 16:41:47 +0000 Subject: tmpfs: add fast path to tmpfs_access for common case lookup VEXEC consists of vast majority of all calls and almost all targets have at least 0111. --- sys/fs/tmpfs/tmpfs_vnops.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'sys/fs/tmpfs/tmpfs_vnops.c') diff --git a/sys/fs/tmpfs/tmpfs_vnops.c b/sys/fs/tmpfs/tmpfs_vnops.c index 3b64b73ab4fb..3ee90251f2fc 100644 --- a/sys/fs/tmpfs/tmpfs_vnops.c +++ b/sys/fs/tmpfs/tmpfs_vnops.c @@ -331,6 +331,12 @@ tmpfs_access(struct vop_access_args *v) node = VP_TO_TMPFS_NODE(vp); + /* + * Common case path lookup. + */ + if (__predict_true(accmode == VEXEC && (node->tn_mode & 0111) == 0111)) + return (0); + switch (vp->v_type) { case VDIR: /* FALLTHROUGH */ -- cgit v1.2.3