diff options
author | Douglas Fuller <dfuller@redhat.com> | 2016-01-22 20:18:40 +0100 |
---|---|---|
committer | Douglas Fuller <dfuller@redhat.com> | 2016-01-22 20:23:45 +0100 |
commit | 2aa0f318c862dbe3027d74d345671506605778eb (patch) | |
tree | b40b6f2ba32223382e2a9f3f3229670caa8512ec | |
parent | Merge pull request #7327 from igrcic/master (diff) | |
download | ceph-2aa0f318c862dbe3027d74d345671506605778eb.tar.xz ceph-2aa0f318c862dbe3027d74d345671506605778eb.zip |
rbd: remove canceled tasks from timer thread
When canceling scheduled tasks using the timer thread, TaskFinisher::cancel
does not call SafeTimer::cancel_event, so events fire anyway. Add this call.
Fixes: #14476
Signed-off-by: Douglas Fuller <dfuller@redhat.com>
-rw-r--r-- | src/librbd/TaskFinisher.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/librbd/TaskFinisher.h b/src/librbd/TaskFinisher.h index 43ec51796c5..201ff01380c 100644 --- a/src/librbd/TaskFinisher.h +++ b/src/librbd/TaskFinisher.h @@ -45,6 +45,7 @@ public: typename TaskContexts::iterator it = m_task_contexts.find(task); if (it != m_task_contexts.end()) { delete it->second.first; + m_safe_timer->cancel_event(it->second.second); m_task_contexts.erase(it); } } |