Page MenuHomeFreeBSD

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

Authored by markj on Aug 24 2021, 2:01 PM.
Tags
None
Referenced Files
Unknown Object (File)
Sun, Apr 20, 7:15 PM
Unknown Object (File)
Sun, Apr 13, 11:42 PM
Unknown Object (File)
Sun, Apr 13, 12:26 PM
Unknown Object (File)
Mon, Apr 7, 7:24 PM
Unknown Object (File)
Mar 13 2025, 2:56 AM
Unknown Object (File)
Mar 12 2025, 10:01 PM
Unknown Object (File)
Mar 7 2025, 3:10 PM
Unknown Object (File)
Jan 30 2025, 7:22 AM
Subscribers

Details

Summary

In preparation for moving sockbuf locks into the containing socket,
provide macros for the sockbuf I/O locks: SOCK_IO_SEND_(UN)LOCK() and
SOCK_IO_RECV_(UN)LOCK(). These locks are only used to prevent
concurrent readers and writters from interleaving I/O, so the new names
are more descriptive.

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().

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 41300
Build 38189: arc lint + arc unit

Event Timeline

This revision is now accepted and ready to land.Aug 24 2021, 2:35 PM

Remove unneeded error handling from vn_sendfile().
The sendfile_sync structure is freed at the end of the function.

This revision now requires review to proceed.Aug 31 2021, 7:08 PM
This revision is now accepted and ready to land.Sep 1 2021, 8:23 AM