io_uring/net: preset notif tw handler

We're going to have multiple notification tw functions. In preparation
for future changes default the tw callback in advance so later we can
replace it with other versions.

Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Link: https://lore.kernel.org/r/7acdbea5e20eadd844513320cd454af14ba50f64.1667557923.git.asml.silence@gmail.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
Pavel Begunkov 2022-11-04 10:59:42 +00:00 committed by Jens Axboe
parent 5bc8e8884b
commit fc1dd0d4fa

View File

@ -39,10 +39,8 @@ static void io_uring_tx_zerocopy_callback(struct sk_buff *skb,
WRITE_ONCE(nd->zc_copied, true);
}
if (refcount_dec_and_test(&uarg->refcnt)) {
notif->io_task_work.func = __io_notif_complete_tw;
if (refcount_dec_and_test(&uarg->refcnt))
io_req_task_work_add(notif);
}
}
struct io_kiocb *io_alloc_notif(struct io_ring_ctx *ctx)
@ -60,6 +58,7 @@ struct io_kiocb *io_alloc_notif(struct io_ring_ctx *ctx)
notif->task = current;
io_get_task_refs(1);
notif->rsrc_node = NULL;
notif->io_task_work.func = __io_notif_complete_tw;
nd = io_notif_to_data(notif);
nd->account_pages = 0;
@ -76,8 +75,6 @@ void io_notif_flush(struct io_kiocb *notif)
struct io_notif_data *nd = io_notif_to_data(notif);
/* drop slot's master ref */
if (refcount_dec_and_test(&nd->uarg.refcnt)) {
notif->io_task_work.func = __io_notif_complete_tw;
if (refcount_dec_and_test(&nd->uarg.refcnt))
io_req_task_work_add(notif);
}
}