diff options
author | rwatson <rwatson@FreeBSD.org> | 2004-03-29 01:55:32 +0000 |
---|---|---|
committer | rwatson <rwatson@FreeBSD.org> | 2004-03-29 01:55:32 +0000 |
commit | 3b7dc3c3f751f81ed34018ba4b2ec9b94488dd99 (patch) | |
tree | e1b2bc29fe1aeb14b9a08b202e494891ac3986ba /sys | |
parent | e2c58ec1b87bf7ca65e209271c8a7176cbd4a88f (diff) | |
download | FreeBSD-src-3b7dc3c3f751f81ed34018ba4b2ec9b94488dd99.zip FreeBSD-src-3b7dc3c3f751f81ed34018ba4b2ec9b94488dd99.tar.gz |
Conditionally acquire Giant when entering the socket layer via file
descriptor operations based on debug.mpsafenet, rather than acquiring
Giant unconditionally.
Diffstat (limited to 'sys')
-rw-r--r-- | sys/kern/sys_socket.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/sys/kern/sys_socket.c b/sys/kern/sys_socket.c index 879e83d..7566a56 100644 --- a/sys/kern/sys_socket.c +++ b/sys/kern/sys_socket.c @@ -79,16 +79,16 @@ soo_read(fp, uio, active_cred, flags, td) struct socket *so = fp->f_data; int error; - mtx_lock(&Giant); + NET_LOCK_GIANT(); #ifdef MAC error = mac_check_socket_receive(active_cred, so); if (error) { - mtx_unlock(&Giant); + NET_UNLOCK_GIANT(); return (error); } #endif error = so->so_proto->pr_usrreqs->pru_soreceive(so, 0, uio, 0, 0, 0); - mtx_unlock(&Giant); + NET_UNLOCK_GIANT(); return (error); } @@ -104,17 +104,17 @@ soo_write(fp, uio, active_cred, flags, td) struct socket *so = fp->f_data; int error; - mtx_lock(&Giant); + NET_LOCK_GIANT(); #ifdef MAC error = mac_check_socket_send(active_cred, so); if (error) { - mtx_unlock(&Giant); + NET_UNLOCK_GIANT(); return (error); } #endif error = so->so_proto->pr_usrreqs->pru_sosend(so, 0, uio, 0, 0, 0, uio->uio_td); - mtx_unlock(&Giant); + NET_UNLOCK_GIANT(); return (error); } |