rxrpc kernel sockets hold additional reference to dst

Vadim Fedorenko vfedorenko at novek.ru
Fri Jan 29 10:23:51 EST 2021


On 29.01.2021 15:14, David Howells wrote:
> David Howells <dhowells at redhat.com> wrote:
> 
>> Vadim Fedorenko <vfedorenko at novek.ru> wrote:
>>
>>> And the next problem is a dead lock of releasing references when it was
>>> initiated by namespace destruction. Releasing of netdevices is done earlier
>>> than subsystems and it assumes that all the refernces to netdevices are
>>> released. But in rxrpc subsystem socket destruction (which could release
>>> sk_rx_dst) is done in subsystem destruction which should be done after
>>> netdevices.
>>
>> Would simply changing (un)register_pernet_subsys() to
>> (un)register_pernet_device() for both rxrpc and afs suffice?
> 
> Another possibility would be to supply a pre-exit handler - or would that not
> be early enough?

Simple moving to pre-exit handler doesn't work - it hungs the system. I still 
don't exactly know the dependencies between the parts of subsystem that's why I 
could not correctly split exit handler into two - pre-exit and exit.

Vadim




More information about the linux-afs mailing list