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

io_uring: honour zeroes as io-wq worker limits



When we pass in zero as an io-wq worker number limit it shouldn't
actually change the limits but return the old value, follow that
behaviour with deferred limits setup as well.

Cc: stable@kernel.org # 5.15
Reported-by: default avatarBeld Zhang <beldzhang@gmail.com>
Fixes: e139a1ec ("io_uring: apply max_workers limit to all future users")
Signed-off-by: default avatarPavel Begunkov <asml.silence@gmail.com>
Link: https://lore.kernel.org/r/1b222a92f7a78a24b042763805e891a4cdd4b544.1636384034.git.asml.silence@gmail.com


Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent a1957780
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -10791,7 +10791,9 @@ static __cold int io_register_iowq_max_workers(struct io_ring_ctx *ctx,

	BUILD_BUG_ON(sizeof(new_count) != sizeof(ctx->iowq_limits));

	memcpy(ctx->iowq_limits, new_count, sizeof(new_count));
	for (i = 0; i < ARRAY_SIZE(new_count); i++)
		if (new_count[i])
			ctx->iowq_limits[i] = new_count[i];
	ctx->iowq_limits_set = true;

	if (tctx && tctx->io_wq) {