Download raw body.
socket shutdown shared net lock
Hi, Socket shutdown(2) needs only shared net lock. TCP uses per socket lock for struct tcpcb. tcp_usrclosed(), tcp_close(), soisdisconnected() are already MP safe. All other internet protocols call only socantsendmore(). ok? bluhm Index: kern/uipc_socket.c =================================================================== RCS file: /data/mirror/openbsd/cvs/src/sys/kern/uipc_socket.c,v diff -u -p -r1.374 uipc_socket.c --- kern/uipc_socket.c 17 Feb 2025 08:56:33 -0000 1.374 +++ kern/uipc_socket.c 17 Mar 2025 00:04:41 -0000 @@ -1252,9 +1252,9 @@ soshutdown(struct socket *so, int how) sorflush(so); /* FALLTHROUGH */ case SHUT_WR: - solock(so); + solock_shared(so); error = pru_shutdown(so); - sounlock(so); + sounlock_shared(so); break; default: error = EINVAL;
socket shutdown shared net lock