]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Merge pull request #21754 from pdvian/wip-23905-jewel
authorYuri Weinstein <yweinste@redhat.com>
Tue, 19 Jun 2018 22:50:25 +0000 (15:50 -0700)
committerGitHub <noreply@github.com>
Tue, 19 Jun 2018 22:50:25 +0000 (15:50 -0700)
jewel: osdc/Objecter: prevent double-invocation of linger op callback

Reviewed-by: Kefu Chai <kchai@redhat.com>
Reviewed-by: Josh Durgin <jdurgin@redhat.com>
1  2 
src/osdc/Objecter.cc

index 6533a7c2523b72365ce7a6e0593607770626f298,151f883337a4e4d89e629365d52dd34432f9041d..a4b6a8f4607aa46180c34012b644e4c297c6c7c3
@@@ -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 {