Blob Blame History Raw
From 69edf097c42e6e5a7de908d537425583ca3c99ce Mon Sep 17 00:00:00 2001
From: Pavel Begunkov <asml.silence@gmail.com>
Date: Sun, 15 Aug 2021 10:40:19 +0100
Subject: [PATCH 04/11] io_uring: don't inflight-track linked timeouts
Git-commit: 761bcac1573efc99042d59add94d468bf17127f0
Patch-mainline: v5.15-rc1
References: bnc#1205205

Tracking linked timeouts as infligh was needed to make sure that io-wq
is not destroyed by io_uring_cancel_generic() racing with
io_async_cancel_one() accessing it. Now, cancellations issued by linked
timeouts are done in the task context, so it's already synchronised.

Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Link: https://lore.kernel.org/r/e1b05cf47cb69df2305efdbee8cf7ba36f46c1a3.1628981736.git.asml.silence@gmail.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Gabriel Krisman Bertazi <krisman@suse.de>
---
 fs/io_uring.c |    2 --
 1 file changed, 2 deletions(-)

--- a/fs/io_uring.c
+++ b/fs/io_uring.c
@@ -5704,8 +5704,6 @@ static int io_timeout_prep(struct io_kio
 
 	data->mode = io_translate_timeout_mode(flags);
 	hrtimer_init(&data->timer, CLOCK_MONOTONIC, data->mode);
-	if (is_timeout_link)
-		io_req_track_inflight(req);
 	return 0;
 }