mirror of
https://github.com/torvalds/linux.git
synced 2026-06-02 19:43:40 +02:00
mptcp: add eat_recv_skb helper
This patch extracts the free skb related code in __mptcp_recvmsg_mskq() into a new helper mptcp_eat_recv_skb(). This new helper will be used in the next patch. Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn> Reviewed-by: Mat Martineau <martineau@kernel.org> Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org> Reviewed-by: Eric Dumazet <edumazet@google.com> Link: https://patch.msgid.link/20260130-net-next-mptcp-splice-v2-1-31332ba70d7f@kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
74ad1dfe23
commit
436510df0c
|
|
@ -1995,6 +1995,17 @@ static int mptcp_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)
|
|||
|
||||
static void mptcp_rcv_space_adjust(struct mptcp_sock *msk, int copied);
|
||||
|
||||
static void mptcp_eat_recv_skb(struct sock *sk, struct sk_buff *skb)
|
||||
{
|
||||
/* avoid the indirect call, we know the destructor is sock_rfree */
|
||||
skb->destructor = NULL;
|
||||
skb->sk = NULL;
|
||||
atomic_sub(skb->truesize, &sk->sk_rmem_alloc);
|
||||
sk_mem_uncharge(sk, skb->truesize);
|
||||
__skb_unlink(skb, &sk->sk_receive_queue);
|
||||
skb_attempt_defer_free(skb);
|
||||
}
|
||||
|
||||
static int __mptcp_recvmsg_mskq(struct sock *sk, struct msghdr *msg,
|
||||
size_t len, int flags, int copied_total,
|
||||
struct scm_timestamping_internal *tss,
|
||||
|
|
@ -2049,13 +2060,7 @@ static int __mptcp_recvmsg_mskq(struct sock *sk, struct msghdr *msg,
|
|||
break;
|
||||
}
|
||||
|
||||
/* avoid the indirect call, we know the destructor is sock_rfree */
|
||||
skb->destructor = NULL;
|
||||
skb->sk = NULL;
|
||||
atomic_sub(skb->truesize, &sk->sk_rmem_alloc);
|
||||
sk_mem_uncharge(sk, skb->truesize);
|
||||
__skb_unlink(skb, &sk->sk_receive_queue);
|
||||
skb_attempt_defer_free(skb);
|
||||
mptcp_eat_recv_skb(sk, skb);
|
||||
}
|
||||
|
||||
if (copied >= len)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user