From: Kefu Chai Date: Sun, 6 May 2018 03:11:16 +0000 (+0800) Subject: osdc: guard op->on_notify_finish with lock X-Git-Tag: v12.2.6~39^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=c0d756ce100b4e4be349e620a24be55e112b3e3f;p=ceph.git osdc: guard op->on_notify_finish with lock Fixes: http://tracker.ceph.com/issues/23966 Signed-off-by: Kefu Chai (cherry picked from commit c16371965cc785f2e2b87d8c6684854fa2de65e1) (cherry picked from commit 7fbb48513843bb2b191d535708827770bf1d0eba) --- diff --git a/src/osdc/Objecter.cc b/src/osdc/Objecter.cc index 5cb2aed09a591..4e99ec0bbbc25 100644 --- a/src/osdc/Objecter.cc +++ b/src/osdc/Objecter.cc @@ -1643,6 +1643,7 @@ void Objecter::_check_linger_pool_dne(LingerOp *op, bool *need_unregister) } if (op->map_dne_bound > 0) { if (osdmap->get_epoch() >= op->map_dne_bound) { + LingerOp::unique_lock wl{op->watch_lock}; if (op->on_reg_commit) { op->on_reg_commit->complete(-ENOENT); op->on_reg_commit = nullptr;