From 0ac3a7f6941d6f7c7f20708710ad1597ab23b8f7 Mon Sep 17 00:00:00 2001 From: Poul-Henning Kamp Date: Sun, 7 Nov 2004 15:59:27 +0000 Subject: More sensible FILEDESC_ locking. --- sys/compat/svr4/svr4_filio.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/sys/compat/svr4/svr4_filio.c b/sys/compat/svr4/svr4_filio.c index c15c5b493cb9..ef0352d36a86 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 */ } -- cgit v1.2.3