summaryrefslogtreecommitdiffstats
path: root/sys/compat
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2004-11-07 15:59:27 +0000
committerphk <phk@FreeBSD.org>2004-11-07 15:59:27 +0000
commite65c41f01eb13b75567123a3634ece3b7aea79a0 (patch)
treed9743946f8826d5e836a33e385aaa16ff8d81c5a /sys/compat
parent02a22fcc9e339cebd74af8233fc2949356c09fda (diff)
downloadFreeBSD-src-e65c41f01eb13b75567123a3634ece3b7aea79a0.zip
FreeBSD-src-e65c41f01eb13b75567123a3634ece3b7aea79a0.tar.gz
More sensible FILEDESC_ locking.
Diffstat (limited to 'sys/compat')
-rw-r--r--sys/compat/svr4/svr4_filio.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/sys/compat/svr4/svr4_filio.c b/sys/compat/svr4/svr4_filio.c
index c15c5b4..ef0352d 100644
--- a/sys/compat/svr4/svr4_filio.c
+++ b/sys/compat/svr4/svr4_filio.c
@@ -209,14 +209,15 @@ svr4_fil_ioctl(fp, td, retval, fd, cmd, data)
*retval = 0;
- FILEDESC_LOCK(fdp);
switch (cmd) {
case SVR4_FIOCLEX:
+ FILEDESC_LOCK(fdp);
fdp->fd_ofileflags[fd] |= UF_EXCLOSE;
FILEDESC_UNLOCK(fdp);
return 0;
case SVR4_FIONCLEX:
+ FILEDESC_LOCK(fdp);
fdp->fd_ofileflags[fd] &= ~UF_EXCLOSE;
FILEDESC_UNLOCK(fdp);
return 0;
@@ -226,7 +227,6 @@ svr4_fil_ioctl(fp, td, retval, fd, cmd, data)
case SVR4_FIOASYNC:
case SVR4_FIONBIO:
case SVR4_FIONREAD:
- FILEDESC_UNLOCK(fdp);
if ((error = copyin(data, &num, sizeof(num))) != 0)
return error;
@@ -249,7 +249,6 @@ svr4_fil_ioctl(fp, td, retval, fd, cmd, data)
return copyout(&num, data, sizeof(num));
default:
- FILEDESC_UNLOCK(fdp);
DPRINTF(("Unknown svr4 filio %lx\n", cmd));
return 0; /* ENOSYS really */
}
OpenPOWER on IntegriCloud