Hillf Danton <hdan...@sina.com> wrote:

> > -           if (rxnet->live) {
> > +           if (rxnet->live && !conn->params.local->dead) {
> >                     idle_timestamp = READ_ONCE(conn->idle_timestamp);
> >                     expire_at = idle_timestamp + rxrpc_connection_expiry * 
> > HZ;
> >                     if (conn->params.local->service_closed)
> 
> Is there any chance out there that this reaper starts running one minute
> after the dead local went into graveyard?

It's certainly possible that that can happen.  The reaper is per
network-namespace.

conn->params.local holds a ref on the local endpoint.

It may be worth wrapping the "local->dead = true;" in rxrpc_local_destroyer()
in rxnet->conn_lock.

David

Reply via email to