]> git.ipfire.org Git - thirdparty/linux.git/commit
af_unix: Don't use skb_recv_datagram() in unix_stream_read_skb().
authorKuniyuki Iwashima <kuniyu@google.com>
Wed, 2 Jul 2025 22:35:15 +0000 (22:35 +0000)
committerJakub Kicinski <kuba@kernel.org>
Wed, 9 Jul 2025 01:05:25 +0000 (18:05 -0700)
commitd0aac85449dec992bb8dc2503f2cb9e94ef436db
tree40184f8eb835303e3e034094d8b579d91284f383
parent772f01049c4b722b28b3f7025b4996379f127ebf
af_unix: Don't use skb_recv_datagram() in unix_stream_read_skb().

unix_stream_read_skb() calls skb_recv_datagram() with MSG_DONTWAIT,
which is mostly equivalent to sock_error(sk) + skb_dequeue().

In the following patch, we will add a new field to cache the number
of bytes in the receive queue.  Then, we want to avoid introducing
atomic ops in the fast path, so we will reuse the receive queue lock.

As a preparation for the change, let's not use skb_recv_datagram()
in unix_stream_read_skb().

Note that sock_error() is now moved out of the u->iolock mutex as
the mutex does not synchronise the peer's close() at all.

Signed-off-by: Kuniyuki Iwashima <kuniyu@google.com>
Link: https://patch.msgid.link/20250702223606.1054680-4-kuniyu@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/unix/af_unix.c