Commit 8a4955ff authored by Jens Axboe's avatar Jens Axboe
Browse files

io_uring: sqthread should grab ctx->uring_lock for submissions



We use the mutex to guard against registered file updates, for instance.
Ensure we're safe in accessing that state against concurrent updates.

Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent e995d512
Loading
Loading
Loading
Loading
+2 −5
Original line number Diff line number Diff line
@@ -2996,12 +2996,7 @@ static int io_issue_sqe(struct io_kiocb *req, struct io_kiocb **nxt,
		if (req->result == -EAGAIN)
			return -EAGAIN;

		/* workqueue context doesn't hold uring_lock, grab it now */
		if (req->in_async)
			mutex_lock(&ctx->uring_lock);
		io_iopoll_req_issued(req);
		if (req->in_async)
			mutex_unlock(&ctx->uring_lock);
	}

	return 0;
@@ -3655,7 +3650,9 @@ static int io_sq_thread(void *data)
		}

		to_submit = min(to_submit, ctx->sq_entries);
		mutex_lock(&ctx->uring_lock);
		ret = io_submit_sqes(ctx, to_submit, NULL, -1, &cur_mm, true);
		mutex_unlock(&ctx->uring_lock);
		if (ret > 0)
			inflight += ret;
	}