Unverified Commit 44ea9363 authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!10463 io_uring: fix possible deadlock in io_register_iowq_max_workers()

parents bba17dcf ec31c3a8
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -4340,8 +4340,10 @@ static __cold int io_register_iowq_max_workers(struct io_ring_ctx *ctx,
	}

	if (sqd) {
		mutex_unlock(&ctx->uring_lock);
		mutex_unlock(&sqd->lock);
		io_put_sq_data(sqd);
		mutex_lock(&ctx->uring_lock);
	}

	if (copy_to_user(arg, new_count, sizeof(new_count)))
@@ -4366,8 +4368,10 @@ static __cold int io_register_iowq_max_workers(struct io_ring_ctx *ctx,
	return 0;
err:
	if (sqd) {
		mutex_unlock(&ctx->uring_lock);
		mutex_unlock(&sqd->lock);
		io_put_sq_data(sqd);
		mutex_lock(&ctx->uring_lock);
	}
	return ret;
}