diff options
Diffstat (limited to 'net/smc')
| -rw-r--r-- | net/smc/af_smc.c | 7 | ||||
| -rw-r--r-- | net/smc/smc_stats.h | 2 | 
2 files changed, 5 insertions, 4 deletions
diff --git a/net/smc/af_smc.c b/net/smc/af_smc.c index 73a875573e7a..8e3093938cd2 100644 --- a/net/smc/af_smc.c +++ b/net/smc/af_smc.c @@ -3319,10 +3319,8 @@ int smc_create_clcsk(struct net *net, struct sock *sk, int family)  	rc = sock_create_kern(net, family, SOCK_STREAM, IPPROTO_TCP,  			      &smc->clcsock); -	if (rc) { -		sk_common_release(sk); +	if (rc)  		return rc; -	}  	/* smc_clcsock_release() does not wait smc->clcsock->sk's  	 * destruction;  its sk_state might not be TCP_CLOSE after @@ -3368,6 +3366,9 @@ static int __smc_create(struct net *net, struct socket *sock, int protocol,  		smc->clcsock = clcsock;  	else  		rc = smc_create_clcsk(net, sk, family); + +	if (rc) +		sk_common_release(sk);  out:  	return rc;  } diff --git a/net/smc/smc_stats.h b/net/smc/smc_stats.h index 9d32058db2b5..e19177ce4092 100644 --- a/net/smc/smc_stats.h +++ b/net/smc/smc_stats.h @@ -19,7 +19,7 @@  #include "smc_clc.h" -#define SMC_MAX_FBACK_RSN_CNT 30 +#define SMC_MAX_FBACK_RSN_CNT 36  enum {  	SMC_BUF_8K,  | 
