summaryrefslogtreecommitdiffstats
path: root/sys/miscfs
diff options
context:
space:
mode:
authormpi <mpi@openbsd.org>2018-02-19 11:35:41 +0000
committermpi <mpi@openbsd.org>2018-02-19 11:35:41 +0000
commit2dd1cce38f4ab34120b8a2d01f1ae2a754e87de3 (patch)
tree5dcba59a14d16b73b9030bc28b48bf619b9a81c6 /sys/miscfs
parentIn dsa.h rev. 1.25 2018/02/18 12:50:58, tb@ provided DSA_set0_pqg(3) (diff)
downloadwireguard-openbsd-2dd1cce38f4ab34120b8a2d01f1ae2a754e87de3.tar.xz
wireguard-openbsd-2dd1cce38f4ab34120b8a2d01f1ae2a754e87de3.zip
Grab solock() inside soconnect2() instead of asserting for it to be held.
ok millert@
Diffstat (limited to 'sys/miscfs')
-rw-r--r--sys/miscfs/fifofs/fifo_vnops.c10
1 files changed, 2 insertions, 8 deletions
diff --git a/sys/miscfs/fifofs/fifo_vnops.c b/sys/miscfs/fifofs/fifo_vnops.c
index e6381943927..7fcd631803b 100644
--- a/sys/miscfs/fifofs/fifo_vnops.c
+++ b/sys/miscfs/fifofs/fifo_vnops.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: fifo_vnops.c,v 1.62 2018/01/02 06:38:45 guenther Exp $ */
+/* $OpenBSD: fifo_vnops.c,v 1.63 2018/02/19 11:35:41 mpi Exp $ */
/* $NetBSD: fifo_vnops.c,v 1.18 1996/03/16 23:52:42 christos Exp $ */
/*
@@ -143,14 +143,7 @@ fifo_open(void *v)
return (error);
}
fip->fi_writesock = wso;
- /*
- * XXXSMP
- * We only lock `wso' because AF_LOCAL sockets are
- * still relying on the KERNEL_LOCK().
- */
- s = solock(wso);
if ((error = soconnect2(wso, rso)) != 0) {
- sounlock(s);
(void)soclose(wso);
(void)soclose(rso);
free(fip, M_VNODE, sizeof *fip);
@@ -158,6 +151,7 @@ fifo_open(void *v)
return (error);
}
fip->fi_readers = fip->fi_writers = 0;
+ s = solock(wso);
wso->so_state |= SS_CANTSENDMORE;
wso->so_snd.sb_lowat = PIPE_BUF;
} else {