diff options
author | jhb <jhb@FreeBSD.org> | 2006-03-28 21:22:08 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2006-03-28 21:22:08 +0000 |
commit | ec112a33cb968a27eba07871f470a198843508fa (patch) | |
tree | 9566f642c0d00ae7cf32fc2d3279be2b603805da /sys/kern/vfs_syscalls.c | |
parent | 1e32aa137d72d99922585b4ac33609aa1a09b782 (diff) | |
download | FreeBSD-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.c | 2 |
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) { |