aboutsummaryrefslogtreecommitdiff
path: root/sys/cddl
diff options
context:
space:
mode:
authorKyle Evans <kevans@FreeBSD.org>2020-02-02 16:34:57 +0000
committerKyle Evans <kevans@FreeBSD.org>2020-02-02 16:34:57 +0000
commit6a5abb1ee5351d36de3b8589f8bf23fd2dfbb6da (patch)
treedb300f6040643046bb920b04cfb37a8576cec10d /sys/cddl
parentc887ac83245115c57c0b8df29ce5048122a88418 (diff)
Notes
Diffstat (limited to 'sys/cddl')
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c
index 1c2856a224b34..26cce46bc92ea 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c
+++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c
@@ -1543,10 +1543,14 @@ zfs_lookup(vnode_t *dvp, char *nm, vnode_t **vpp, struct componentname *cnp,
* Check accessibility of directory.
*/
if (!cached) {
- error = zfs_zaccess(zdp, ACE_EXECUTE, 0, B_FALSE, cr);
- if (error != 0) {
- ZFS_EXIT(zfsvfs);
- return (error);
+ if ((cnp->cn_flags & NOEXECCHECK) != 0) {
+ cnp->cn_flags &= ~NOEXECCHECK;
+ } else {
+ error = zfs_zaccess(zdp, ACE_EXECUTE, 0, B_FALSE, cr);
+ if (error != 0) {
+ ZFS_EXIT(zfsvfs);
+ return (error);
+ }
}
}