mirror of
https://gitee.com/bianbu-linux/linux-6.6
synced 2025-04-24 14:07:52 -04:00
task_work: add helper for more targeted task_work canceling
The only exported helper we have right now is task_work_cancel(), which cancels any task_work from a given task where func matches the queued work item. This is a bit too coarse for some use cases. Add a task_work_cancel_match() that allows to more specifically target individual work items outside of purely the callback function used. task_work_cancel() can be trivially implemented on top of that, hence do so. Reviewed-by: Oleg Nesterov <oleg@redhat.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
b2e720ace2
commit
c7aab1a7c5
2 changed files with 30 additions and 7 deletions
|
@ -22,6 +22,8 @@ enum task_work_notify_mode {
|
|||
int task_work_add(struct task_struct *task, struct callback_head *twork,
|
||||
enum task_work_notify_mode mode);
|
||||
|
||||
struct callback_head *task_work_cancel_match(struct task_struct *task,
|
||||
bool (*match)(struct callback_head *, void *data), void *data);
|
||||
struct callback_head *task_work_cancel(struct task_struct *, task_work_func_t);
|
||||
void task_work_run(void);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue