merge task_work and rcu_head, get rid of separate allocation for keyring case

task_work and rcu_head are identical now; merge them (calling the result
struct callback_head, rcu_head #define'd to it), kill separate allocation
in security/keys since we can just use cred->rcu now.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
Al Viro 2012-06-27 11:07:19 +04:00
parent 158e1645e0
commit 67d1214551
8 changed files with 31 additions and 52 deletions

View file

@ -4,22 +4,16 @@
#include <linux/list.h>
#include <linux/sched.h>
struct task_work;
typedef void (*task_work_func_t)(struct task_work *);
struct task_work {
struct task_work *next;
task_work_func_t func;
};
typedef void (*task_work_func_t)(struct callback_head *);
static inline void
init_task_work(struct task_work *twork, task_work_func_t func)
init_task_work(struct callback_head *twork, task_work_func_t func)
{
twork->func = func;
}
int task_work_add(struct task_struct *task, struct task_work *twork, bool);
struct task_work *task_work_cancel(struct task_struct *, task_work_func_t);
int task_work_add(struct task_struct *task, struct callback_head *twork, bool);
struct callback_head *task_work_cancel(struct task_struct *, task_work_func_t);
void task_work_run(void);
static inline void exit_task_work(struct task_struct *task)