msgr: fix possible use-after-free by taking pipe lock during reap
msgr: fix possible use-after-free by taking pipe lock during reap

This ensures that whoever called stop() (mark_down, in particular) finished
with the pipe (unlocked it) before we go and free it.  Otherwise we might
call p->lock.Unlock() after the reaper deleted the Pipe, mucking up some
other memory.

I don't think this was actually triggerd, tho, since we would have seen
the assert(nlock == 0) in ~Mutex???

ajnelson/ceph,ajnelson/ceph,ajnelson/ceph,ajnelson/ceph,ajnelson/ceph,ajnelson/ceph