diff options
author | jeff <jeff@FreeBSD.org> | 2005-04-27 09:05:19 +0000 |
---|---|---|
committer | jeff <jeff@FreeBSD.org> | 2005-04-27 09:05:19 +0000 |
commit | f869be5c723f74ca4c5c0d99a6ba4fcb9244126a (patch) | |
tree | 136593dab7ab3c0fb624d4feafbdd3bdb5f1ec90 | |
parent | a6baba06d1cf1f5e56ba23805d837db4b42c35da (diff) | |
download | FreeBSD-src-f869be5c723f74ca4c5c0d99a6ba4fcb9244126a.zip FreeBSD-src-f869be5c723f74ca4c5c0d99a6ba4fcb9244126a.tar.gz |
- Pass the ISOPEN flag to namei so filesystems will know we're about to
open them or otherwise access the data.
-rw-r--r-- | sys/compat/linux/linux_misc.c | 2 | ||||
-rw-r--r-- | sys/i386/ibcs2/imgact_coff.c | 3 | ||||
-rw-r--r-- | sys/kern/kern_exec.c | 2 | ||||
-rw-r--r-- | sys/kern/vfs_vnops.c | 4 | ||||
-rw-r--r-- | sys/vm/swap_pager.c | 2 |
5 files changed, 7 insertions, 6 deletions
diff --git a/sys/compat/linux/linux_misc.c b/sys/compat/linux/linux_misc.c index 85cd13b..4c6b53f 100644 --- a/sys/compat/linux/linux_misc.c +++ b/sys/compat/linux/linux_misc.c @@ -268,7 +268,7 @@ linux_uselib(struct thread *td, struct linux_uselib_args *args) * XXX: This code should make use of vn_open(), rather than doing * all this stuff itself. */ - NDINIT(&ni, LOOKUP, FOLLOW|LOCKLEAF, UIO_SYSSPACE, library, td); + NDINIT(&ni, LOOKUP, ISOPEN|FOLLOW|LOCKLEAF, UIO_SYSSPACE, library, td); error = namei(&ni); LFREEPATH(library); if (error) diff --git a/sys/i386/ibcs2/imgact_coff.c b/sys/i386/ibcs2/imgact_coff.c index b6c6cae..a7ab607 100644 --- a/sys/i386/ibcs2/imgact_coff.c +++ b/sys/i386/ibcs2/imgact_coff.c @@ -171,7 +171,8 @@ coff_load_file(struct thread *td, char *name) unsigned long bss_size = 0; int i; - NDINIT(&nd, LOOKUP, LOCKLEAF | FOLLOW | SAVENAME, UIO_SYSSPACE, name, td); + NDINIT(&nd, LOOKUP, ISOPEN | LOCKLEAF | FOLLOW | SAVENAME, + UIO_SYSSPACE, name, td); error = namei(&nd); if (error) diff --git a/sys/kern/kern_exec.c b/sys/kern/kern_exec.c index 9783615..52e1c68 100644 --- a/sys/kern/kern_exec.c +++ b/sys/kern/kern_exec.c @@ -348,7 +348,7 @@ do_execve(td, args, mac_p) * in ni_vp amoung other things. */ ndp = &nd; - NDINIT(ndp, LOOKUP, LOCKLEAF | FOLLOW | SAVENAME, + NDINIT(ndp, LOOKUP, ISOPEN | LOCKLEAF | FOLLOW | SAVENAME, UIO_SYSSPACE, args->fname, td); mtx_lock(&Giant); diff --git a/sys/kern/vfs_vnops.c b/sys/kern/vfs_vnops.c index b51880c..084f310 100644 --- a/sys/kern/vfs_vnops.c +++ b/sys/kern/vfs_vnops.c @@ -118,7 +118,7 @@ restart: fmode = *flagp; if (fmode & O_CREAT) { ndp->ni_cnd.cn_nameiop = CREATE; - ndp->ni_cnd.cn_flags = LOCKPARENT | LOCKLEAF | MPSAFE; + ndp->ni_cnd.cn_flags = ISOPEN | LOCKPARENT | LOCKLEAF | MPSAFE; if ((fmode & O_EXCL) == 0 && (fmode & O_NOFOLLOW) == 0) ndp->ni_cnd.cn_flags |= FOLLOW; bwillwrite(); @@ -178,7 +178,7 @@ restart: } } else { ndp->ni_cnd.cn_nameiop = LOOKUP; - ndp->ni_cnd.cn_flags = + ndp->ni_cnd.cn_flags = ISOPEN | ((fmode & O_NOFOLLOW) ? NOFOLLOW : FOLLOW) | LOCKSHARED | LOCKLEAF | MPSAFE; if ((error = namei(ndp)) != 0) diff --git a/sys/vm/swap_pager.c b/sys/vm/swap_pager.c index eca68b6..f4d61fb 100644 --- a/sys/vm/swap_pager.c +++ b/sys/vm/swap_pager.c @@ -2025,7 +2025,7 @@ swapon(struct thread *td, struct swapon_args *uap) goto done; } - NDINIT(&nd, LOOKUP, FOLLOW, UIO_USERSPACE, uap->name, td); + NDINIT(&nd, LOOKUP, ISOPEN | FOLLOW, UIO_USERSPACE, uap->name, td); error = namei(&nd); if (error) goto done; |