summaryrefslogtreecommitdiffstats
path: root/include/linux/task_work.h
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2012-06-27 09:24:13 +0400
committerAl Viro <viro@zeniv.linux.org.uk>2012-07-22 23:57:55 +0400
commit158e1645e07f3e9f7e4962d7a0997f5c3b98311b (patch)
tree09d695b3a0410afe15f7fd6006bc6c1effee151d /include/linux/task_work.h
parent41f9d29f09ca0b22c3631e8a39676e74cda9bcc0 (diff)
downloadlinux-158e1645e07f3e9f7e4962d7a0997f5c3b98311b.tar.gz
linux-158e1645e07f3e9f7e4962d7a0997f5c3b98311b.tar.xz
trim task_work: get rid of hlist
layout based on Oleg's suggestion; single-linked list, task->task_works points to the last element, forward pointer from said last element points to head. I'd still prefer much more regular scheme with two pointers in task_work, but... Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'include/linux/task_work.h')
-rw-r--r--include/linux/task_work.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/include/linux/task_work.h b/include/linux/task_work.h
index 627421c0e108..3b3e2c8d037b 100644
--- a/include/linux/task_work.h
+++ b/include/linux/task_work.h
@@ -8,7 +8,7 @@ struct task_work;
typedef void (*task_work_func_t)(struct task_work *);
struct task_work {
- struct hlist_node hlist;
+ struct task_work *next;
task_work_func_t func;
};
@@ -24,7 +24,7 @@ void task_work_run(void);
static inline void exit_task_work(struct task_struct *task)
{
- if (unlikely(!hlist_empty(&task->task_works)))
+ if (unlikely(task->task_works))
task_work_run();
}