From: Zhao Lei <zhao...@cn.fujitsu.com> task_period_stop() is used to close a timer explicitly, to avoid the timer handle closed again by task_stop(), we should reset its value after close.
Also add value-reset for info->id for safe. Signed-off-by: Zhao Lei <zhao...@cn.fujitsu.com> --- task-utils.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/task-utils.c b/task-utils.c index 17fd573..768be94 100644 --- a/task-utils.c +++ b/task-utils.c @@ -64,10 +64,13 @@ void task_stop(struct task_info *info) if (info->id > 0) { pthread_cancel(info->id); pthread_join(info->id, NULL); + info->id = -1; } - if (info->periodic.timer_fd) + if (info->periodic.timer_fd) { close(info->periodic.timer_fd); + info->periodic.timer_fd = 0; + } if (info->postfn) info->postfn(info->private_data); @@ -130,5 +133,6 @@ void task_period_stop(struct task_info *info) if (info->periodic.timer_fd) { timerfd_settime(info->periodic.timer_fd, 0, NULL, NULL); close(info->periodic.timer_fd); + info->periodic.timer_fd = -1; } } -- 1.8.5.1 -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html