Commit fc1dd0d4 authored by Pavel Begunkov's avatar Pavel Begunkov Committed by Jens Axboe
Browse files

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: default avatarPavel Begunkov <asml.silence@gmail.com>
Link: https://lore.kernel.org/r/7acdbea5e20eadd844513320cd454af14ba50f64.1667557923.git.asml.silence@gmail.com


Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 5bc8e888
Loading
Loading
Loading
Loading
+3 −6
Original line number Diff line number Diff line
@@ -39,11 +39,9 @@ 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)
	__must_hold(&ctx->uring_lock)
@@ -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);
}
}