HomeFreeBSD

socket: Rename sb(un)lock() and interlock with listen(2)

Description

socket: Rename sb(un)lock() and interlock with listen(2)

In preparation for moving sockbuf locks into the containing socket,
provide alternative macros for the sockbuf I/O locks:
SOCK_IO_SEND_(UN)LOCK() and SOCK_IO_RECV_(UN)LOCK(). These operate on a
socket rather than a socket buffer. Note that these locks are used only
to prevent concurrent readers and writters from interleaving I/O.

When locking for I/O, return an error if the socket is a listening
socket. Currently the check is racy since the sockbuf sx locks are
destroyed during the transition to a listening socket, but that will no
longer be true after some follow-up changes.

Modify a few places to check for errors from
sblock()/SOCK_IO_(SEND|RECV)_LOCK() where they were not before. In
particular, add checks to sendfile() and sorflush().

Reviewed by: tuexen, gallatin
MFC after: 1 month
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D31657

Details

Provenance
markjAuthored on Sep 7 2021, 6:49 PM
Reviewer
tuexen
Differential Revision
D31657: socket: Rename sb(un)lock() and interlock with listen(2)
Parents
rG97cf43ebc5c9: socket: Reorder socket and sockbuf fields to eliminate some padding
Branches
Unknown
Tags
Unknown