mptcp: make the locking tx schema more readable
Florian noted the locking schema used by __mptcp_push_pending() is hard to follow, let's add some more descriptive comments and drop an unneeded and confusing check. Suggested-by: Florian Westphal <fw@strlen.de> Signed-off-by: Paolo Abeni <pabeni@redhat.com> Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
f6c2ef59bc
commit
9758f40e90
@ -1515,15 +1515,19 @@ void __mptcp_push_pending(struct sock *sk, unsigned int flags)
|
||||
mptcp_flush_join_list(msk);
|
||||
ssk = mptcp_subflow_get_send(msk);
|
||||
|
||||
/* try to keep the subflow socket lock across
|
||||
* consecutive xmit on the same socket
|
||||
/* First check. If the ssk has changed since
|
||||
* the last round, release prev_ssk
|
||||
*/
|
||||
if (ssk != prev_ssk && prev_ssk)
|
||||
mptcp_push_release(sk, prev_ssk, &info);
|
||||
if (!ssk)
|
||||
goto out;
|
||||
|
||||
if (ssk != prev_ssk || !prev_ssk)
|
||||
/* Need to lock the new subflow only if different
|
||||
* from the previous one, otherwise we are still
|
||||
* helding the relevant lock
|
||||
*/
|
||||
if (ssk != prev_ssk)
|
||||
lock_sock(ssk);
|
||||
|
||||
/* keep it simple and always provide a new skb for the
|
||||
|
Loading…
x
Reference in New Issue
Block a user