All paths to pipe shutdown should have cleared the con->pipe reference
already. Assert as much.
Also, do it under pipe_lock!
Signed-off-by: Sage Weil <sage@inktank.com>
(cherry picked from commit
9586305a2317c7d6bbf31c9cf5b67dc93ccab50d)
ldout(cct,10) << "reaper reaping pipe " << p << " " << p->get_peer_addr() << dendl;
p->pipe_lock.Lock();
p->discard_out_queue();
+ if (p->connection_state)
+ p->connection_state->clear_pipe(p);
p->pipe_lock.Unlock();
p->unregister_pipe();
assert(pipes.count(p));
if (p->sd >= 0)
::close(p->sd);
ldout(cct,10) << "reaper reaped pipe " << p << " " << p->get_peer_addr() << dendl;
- if (p->connection_state)
- p->connection_state->clear_pipe(p);
p->put();
ldout(cct,10) << "reaper deleted pipe " << p << dendl;
}