summaryrefslogtreecommitdiffstats
path: root/sys/kern/vfs_syscalls.c
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2006-03-28 21:22:08 +0000
committerjhb <jhb@FreeBSD.org>2006-03-28 21:22:08 +0000
commitec112a33cb968a27eba07871f470a198843508fa (patch)
tree9566f642c0d00ae7cf32fc2d3279be2b603805da /sys/kern/vfs_syscalls.c
parent1e32aa137d72d99922585b4ac33609aa1a09b782 (diff)
downloadFreeBSD-src-ec112a33cb968a27eba07871f470a198843508fa.zip
FreeBSD-src-ec112a33cb968a27eba07871f470a198843508fa.tar.gz
Change vn_open() to honor the MPSAFE flag in the passed in nameidata object
and use that instead of testing fdidx against -1 to determine if it should release Giant if Giant was locked due to the requested file residing on a non-MPSAFE VFS. Discussed with: jeff
Diffstat (limited to 'sys/kern/vfs_syscalls.c')
-rw-r--r--sys/kern/vfs_syscalls.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c
index 1d0caa9..bc5a904 100644
--- a/sys/kern/vfs_syscalls.c
+++ b/sys/kern/vfs_syscalls.c
@@ -990,7 +990,7 @@ kern_open(struct thread *td, char *path, enum uio_seg pathseg, int flags,
/* An extra reference on `nfp' has been held for us by falloc(). */
fp = nfp;
cmode = ((mode &~ fdp->fd_cmask) & ALLPERMS) &~ S_ISTXT;
- NDINIT(&nd, LOOKUP, FOLLOW | AUDITVNODE1, pathseg, path, td);
+ NDINIT(&nd, LOOKUP, FOLLOW | AUDITVNODE1 | MPSAFE, pathseg, path, td);
td->td_dupfd = -1; /* XXX check for fdopen */
error = vn_open(&nd, &flags, cmode, indx);
if (error) {
OpenPOWER on IntegriCloud