net/smc: remove close abort worker
With the introduction of the link group termination worker there is no longer a need to postpone smc_close_active_abort() to a worker. To protect socket destruction due to normal and abnormal socket closing, the socket refcount is increased. Signed-off-by: Ursula Braun <ubraun@linux.ibm.com> Signed-off-by: Karsten Graul <kgraul@linux.ibm.com> Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
This commit is contained in:

committed by
Jakub Kicinski

parent
f528ba24a8
commit
81cf4f4707
@@ -167,6 +167,7 @@ static int smc_release(struct socket *sock)
|
||||
if (!sk)
|
||||
goto out;
|
||||
|
||||
sock_hold(sk); /* sock_put below */
|
||||
smc = smc_sk(sk);
|
||||
|
||||
/* cleanup for a dangling non-blocking connect */
|
||||
@@ -189,6 +190,7 @@ static int smc_release(struct socket *sock)
|
||||
sock->sk = NULL;
|
||||
release_sock(sk);
|
||||
|
||||
sock_put(sk); /* sock_hold above */
|
||||
sock_put(sk); /* final sock_put */
|
||||
out:
|
||||
return rc;
|
||||
@@ -970,12 +972,14 @@ void smc_close_non_accepted(struct sock *sk)
|
||||
{
|
||||
struct smc_sock *smc = smc_sk(sk);
|
||||
|
||||
sock_hold(sk); /* sock_put below */
|
||||
lock_sock(sk);
|
||||
if (!sk->sk_lingertime)
|
||||
/* wait for peer closing */
|
||||
sk->sk_lingertime = SMC_MAX_STREAM_WAIT_TIMEOUT;
|
||||
__smc_release(smc);
|
||||
release_sock(sk);
|
||||
sock_put(sk); /* sock_hold above */
|
||||
sock_put(sk); /* final sock_put */
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user