p->unregister_pipe();
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);
+ }
p->pipe_lock.Unlock();
} else {
ldout(cct,1) << "mark_down " << addr << " -- pipe dne" << dendl;
p->unregister_pipe();
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);
+ }
p->pipe_lock.Unlock();
p->put();
} else {