Re: [PATCH v2 net] net/smc: postpone sk_refcnt increment in connect()

From: Karsten Graul
Date: Mon May 23 2022 - 10:45:19 EST


On 23/05/2022 16:19, liuyacan@xxxxxxxxxxxxxxxx wrote:
>> This is a rather unusual problem that can come up when fallback=true BEFORE smc_connect()
>> is called. But nevertheless, it is a problem.
>>
>> Right now I am not sure if it is okay when we NOT hold a ref to smc->sk during all fallback
>> processing. This change also conflicts with a patch that is already on net-next (3aba1030).
>
> Do you mean put the ref to smc->sk during all fallback processing unconditionally and remove
> the fallback branch sock_put() in __smc_release()?

What I had in mind was to eventually call sock_put() in __smc_release() even if sk->sk_state == SMC_INIT
(currently the extra check in the if() for sk->sk_state != SMC_INIT prevents the sock_put()), but only
when it is sure that we actually reached the sock_hold() in smc_connect() before.

But maybe we find out that the sock_hold() is not needed for fallback sockets, I don't know...