Commit cdb31c29 authored by Jens Axboe's avatar Jens Axboe
Browse files

io_uring: don't punt files update to io-wq unconditionally



There's no reason to punt it unconditionally, we just need to ensure that
the submit lock grabbing is conditional.

Fixes: 05f3fb3c ("io_uring: avoid ring quiesce for fixed file set unregister and update")
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 9990da93
Loading
Loading
Loading
Loading
+2 −5
Original line number Diff line number Diff line
@@ -6340,19 +6340,16 @@ static int io_files_update(struct io_kiocb *req, unsigned int issue_flags)
	struct io_uring_rsrc_update2 up;
	int ret;

	if (issue_flags & IO_URING_F_NONBLOCK)
		return -EAGAIN;

	up.offset = req->rsrc_update.offset;
	up.data = req->rsrc_update.arg;
	up.nr = 0;
	up.tags = 0;
	up.resv = 0;

	mutex_lock(&ctx->uring_lock);
	io_ring_submit_lock(ctx, !(issue_flags & IO_URING_F_NONBLOCK));
	ret = __io_register_rsrc_update(ctx, IORING_RSRC_FILE,
					&up, req->rsrc_update.nr_args);
	mutex_unlock(&ctx->uring_lock);
	io_ring_submit_unlock(ctx, !(issue_flags & IO_URING_F_NONBLOCK));

	if (ret < 0)
		req_set_fail(req);