summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDouglas Fuller <dfuller@redhat.com>2016-01-22 20:18:40 +0100
committerDouglas Fuller <dfuller@redhat.com>2016-01-22 20:23:45 +0100
commit2aa0f318c862dbe3027d74d345671506605778eb (patch)
treeb40b6f2ba32223382e2a9f3f3229670caa8512ec
parentMerge pull request #7327 from igrcic/master (diff)
downloadceph-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.h1
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);
}
}