mirror of
https://github.com/ceph/ceph
synced 2024-12-17 17:05:42 +00:00
msgr: generate reset event on mark_down to addr (not con)
If the caller is marking down an addr, they presumably don't have the Connection* handy, so we should generate a reset event to help them clean up con <-> session ref cycles. Signed-off-by: Sage Weil <sage@inktank.com>
This commit is contained in:
parent
bfadcd2a0e
commit
8dcf0b199a
@ -599,9 +599,12 @@ void SimpleMessenger::mark_down(const entity_addr_t& addr)
|
||||
p->pipe_lock.Lock();
|
||||
p->stop();
|
||||
if (p->connection_state) {
|
||||
// do not generate a reset event for the caller in this case,
|
||||
// since they asked for it.
|
||||
p->connection_state->clear_pipe(p);
|
||||
// generate a reset event for the caller in this case, even
|
||||
// though they asked for it, since this is the addr-based (and
|
||||
// not Connection* based) interface
|
||||
ConnectionRef con = p->connection_state;
|
||||
if (con && con->clear_pipe(p))
|
||||
dispatch_queue.queue_reset(con.get());
|
||||
}
|
||||
p->pipe_lock.Unlock();
|
||||
} else {
|
||||
|
Loading…
Reference in New Issue
Block a user