Page MenuHomeFreeBSD

D46710.diff
No OneTemporary

D46710.diff

diff --git a/sys/fs/autofs/autofs_vnops.c b/sys/fs/autofs/autofs_vnops.c
--- a/sys/fs/autofs/autofs_vnops.c
+++ b/sys/fs/autofs/autofs_vnops.c
@@ -247,7 +247,9 @@
}
if (autofs_cached(anp, cnp->cn_nameptr, cnp->cn_namelen) == false &&
- autofs_ignore_thread(curthread) == false) {
+ autofs_ignore_thread(curthread) == false &&
+ (cnp->cn_flags & (ISLASTCN | NOAUTOMOUNT)) != (ISLASTCN |
+ NOAUTOMOUNT)) {
error = autofs_trigger_vn(dvp,
cnp->cn_nameptr, cnp->cn_namelen, &newvp);
if (error != 0)
diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c
--- a/sys/kern/vfs_syscalls.c
+++ b/sys/kern/vfs_syscalls.c
@@ -2466,8 +2466,9 @@
return (EINVAL);
NDINIT_ATRIGHTS(&nd, LOOKUP, at2cnpflags(flag, AT_RESOLVE_BENEATH |
- AT_SYMLINK_NOFOLLOW | AT_EMPTY_PATH) | LOCKSHARED | LOCKLEAF |
- AUDITVNODE1, pathseg, path, fd, &cap_fstat_rights);
+ AT_SYMLINK_NOFOLLOW | AT_EMPTY_PATH) | NOAUTOMOUNT |
+ LOCKSHARED | LOCKLEAF | AUDITVNODE1, pathseg, path, fd,
+ &cap_fstat_rights);
if ((error = namei(&nd)) != 0) {
if (error == ENOTDIR &&
diff --git a/sys/sys/namei.h b/sys/sys/namei.h
--- a/sys/sys/namei.h
+++ b/sys/sys/namei.h
@@ -152,6 +152,7 @@
#define LOCKSHARED 0x0100 /* Shared lock leaf */
#define NOFOLLOW 0x0000 /* do not follow symbolic links (pseudo) */
#define RBENEATH 0x100000000ULL /* No escape, even tmp, from start dir */
+#define NOAUTOMOUNT 0x200000000ULL /* No automount on last cn */
#define MODMASK 0xf000001ffULL /* mask of operational modifiers */
/*

File Metadata

Mime Type
text/plain
Expires
Thu, May 14, 10:04 PM (11 h, 55 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
33063586
Default Alt Text
D46710.diff (1 KB)

Event Timeline