diff options
| author | Kuniyuki Iwashima <[email protected]> | 2024-03-25 20:24:14 +0000 |
|---|---|---|
| committer | Jakub Kicinski <[email protected]> | 2024-03-29 15:27:55 +0000 |
| commit | 22c3c0c52d32f41cc38cd936ea0c93f22ced3315 (patch) | |
| tree | fe536f83a83eb12dcffd9e82a58ad5713167eebf /include/net/af_unix.h | |
| parent | af_unix: Link struct unix_edge when queuing skb. (diff) | |
| download | kernel-22c3c0c52d32f41cc38cd936ea0c93f22ced3315.tar.gz kernel-22c3c0c52d32f41cc38cd936ea0c93f22ced3315.zip | |
af_unix: Bulk update unix_tot_inflight/unix_inflight when queuing skb.
Currently, we track the number of inflight sockets in two variables.
unix_tot_inflight is the total number of inflight AF_UNIX sockets on
the host, and user->unix_inflight is the number of inflight fds per
user.
We update them one by one in unix_inflight(), which can be done once
in batch. Also, sendmsg() could fail even after unix_inflight(), then
we need to acquire unix_gc_lock only to decrement the counters.
Let's bulk update the counters in unix_add_edges() and unix_del_edges(),
which is called only for successfully passed fds.
Signed-off-by: Kuniyuki Iwashima <[email protected]>
Acked-by: Paolo Abeni <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Jakub Kicinski <[email protected]>
Diffstat (limited to 'include/net/af_unix.h')
0 files changed, 0 insertions, 0 deletions
