From: Yuri Weinstein Date: Tue, 19 Jun 2018 22:50:25 +0000 (-0700) Subject: Merge pull request #21754 from pdvian/wip-23905-jewel X-Git-Tag: v10.2.11~13 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=05fd3a46bc5cff506967cababa74013848ecc599;p=ceph.git Merge pull request #21754 from pdvian/wip-23905-jewel jewel: osdc/Objecter: prevent double-invocation of linger op callback Reviewed-by: Kefu Chai Reviewed-by: Josh Durgin --- 05fd3a46bc5cff506967cababa74013848ecc599 diff --cc src/osdc/Objecter.cc index 6533a7c2523b7,151f883337a4e..a4b6a8f4607aa --- a/src/osdc/Objecter.cc +++ b/src/osdc/Objecter.cc @@@ -1529,14 -1525,10 +1529,15 @@@ void Objecter::_check_linger_pool_dne(L } 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; } + if (op->on_notify_finish) { + op->on_notify_finish->complete(-ENOENT); + op->on_notify_finish = nullptr; + } *need_unregister = true; } } else {