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

io_uring: remove useless is_dying check on quiesce



rsrc_data refs should always be valid for potential submitters,
io_rsrc_ref_quiesce() restores it before unlocking, so
percpu_ref_is_dying() check in io_sqe_files_unregister() does nothing
and misleading. Concurrent quiesce is prevented with
struct io_rsrc_data::quiesce.

Signed-off-by: default avatarPavel Begunkov <asml.silence@gmail.com>
Link: https://lore.kernel.org/r/bf97055e1748ee3a382e66daf384a469eb90b931.1617287883.git.asml.silence@gmail.com


Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 28a9fe25
Loading
Loading
Loading
Loading
+2 −6
Original line number Diff line number Diff line
@@ -7135,6 +7135,7 @@ static int io_rsrc_ref_quiesce(struct io_rsrc_data *data, struct io_ring_ctx *ct
{
	int ret;

	/* As we may drop ->uring_lock, other task may have started quiesce */
	if (data->quiesce)
		return -ENXIO;

@@ -7197,12 +7198,7 @@ static int io_sqe_files_unregister(struct io_ring_ctx *ctx)
	unsigned nr_tables, i;
	int ret;

	/*
	 * percpu_ref_is_dying() is to stop parallel files unregister
	 * Since we possibly drop uring lock later in this function to
	 * run task work.
	 */
	if (!data || percpu_ref_is_dying(&data->refs))
	if (!data)
		return -ENXIO;
	ret = io_rsrc_ref_quiesce(data, ctx);
	if (ret)