ceph/ceph — pull request #2631 by liewegas (2014-10-02 22:23:31+00:00)
Title: DNM: osdc/Objecter: use SafeTimer; make callbacks race-tolerant

The RWTimer event cancellation is racy. Instead, just make all of our
callbacks tolerate cancellation races. This is already true of most of them
(in fact, they are probably broken because they try to take a write lock
while holding a read lock). Fix C_CancelOp so that it calls the other
op_cancel (that takes a tid).

Then switch the RWTimer back to a SafeTimer. Put it in unsafe callbacks mode
because we don't want to introduce lock cycles with timer_lock.

Fixes: #9582 See also: #9650 Signed-off-by: Sage Weil