Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp1222464pxf; Fri, 9 Apr 2021 03:12:14 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyWS9HPT3YcWLcgXJSo8MpaGbFTG4SDmvSfw7L0LYHoZlO/vu2cTwdlp/B+UuoqqQz8b9KX X-Received: by 2002:a17:907:9116:: with SMTP id p22mr1689111ejq.516.1617963134271; Fri, 09 Apr 2021 03:12:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1617963134; cv=none; d=google.com; s=arc-20160816; b=C3uPTTmAe6v/u+hfhX+PUzLTwbHek0Fq6+NhJsoXHGEtAIYxj9r1FwXhm9RA7q03Jt tUK/MrVlRTQvi8cOr2Y5vUZGLMTRGbO+1yzluvQNkXC/TqGSDDwhj9sdMzT+sdZwQ1ql K1pC3IHaiUFbr6W/BHh4hBYI6EQS95qnc8G03NAv15xYJHp+N0U+qkdD+DIstVTZnB+N pf65wsFjIjDa86UMRKV1ZAgqXZe/OXlvs6QLqM2F5hOQrgdX0tZlFeG04bGroeThHBDG rxnjtsi+laQ5dDno0T6KNGSIMHYvdeggpFwnMe7ec+Lo4ITKAxGn8sBT7T9C033vsyAQ GCFg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=S/QoB7hJbhnUrtiqjjBQS/4hWpbDgWWHx3ArIu3PVoo=; b=peg1SFWlCEOQa6aSUx4e1x9hpD4g7CowfqQZQX7njHT+sxDsZndMXFPFdMDW8PoWF3 36wjA+PQjN9lHukX1Lq9MK9/rMIdyiiLEmdGNA5ZaJGHXhaUy7CSvfgNu7mSCszieAEI CDQRaORcGPwAWmjYHvH5RYiPqvAJLEC8fCZmrLfanunCRws655JxBUK3eXDKxgyharaM m/MwD+CIToQY5A1rXoOh9XTn9nvwxXT/GrewuObEFgE8Z/6KPF/juCKMip5GGOFW7/wK LvCMsvtcZnTtdYaVCNzfeV4+88t0pyBZV1y9RuHxN5jOQx3RCuOsmDkiuOFDicpefRfo HLKw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=wyYbOa7k; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id p20si1654758ejy.439.2021.04.09.03.11.51; Fri, 09 Apr 2021 03:12:14 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=wyYbOa7k; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233511AbhDIKI4 (ORCPT + 99 others); Fri, 9 Apr 2021 06:08:56 -0400 Received: from mail.kernel.org ([198.145.29.99]:45430 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233886AbhDIKA7 (ORCPT ); Fri, 9 Apr 2021 06:00:59 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 03EF0611ED; Fri, 9 Apr 2021 09:59:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1617962369; bh=WoSd683097kphUU08w3/YRFgA6mE8zXqKnxl9kg38lY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=wyYbOa7kQwYRZna9x1WTp0Z3Dd5/ze458Y1dSTFI4OgVgelZplh+oAcbs6QbQrozQ 2a6w2ISCP7WKpURUqtDs0MjCfSB8fmhUFY0z664sYKHS4ZeaiApZd2O2jsdybJMTkX M1diN/Jmh1Z8ijEaclJvz5gHRa/OIHsMo+ZVKaiY= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Pavel Begunkov , Jens Axboe , Sasha Levin Subject: [PATCH 5.10 30/41] io_uring: fix timeout cancel return code Date: Fri, 9 Apr 2021 11:53:52 +0200 Message-Id: <20210409095305.782146769@linuxfoundation.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210409095304.818847860@linuxfoundation.org> References: <20210409095304.818847860@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Pavel Begunkov [ Upstream commit 1ee4160c73b2102a52bc97a4128a89c34821414f ] When we cancel a timeout we should emit a sensible return code, like -ECANCELED but not 0, otherwise it may trick users. Signed-off-by: Pavel Begunkov Link: https://lore.kernel.org/r/7b0ad1065e3bd1994722702bd0ba9e7bc9b0683b.1616696997.git.asml.silence@gmail.com Signed-off-by: Jens Axboe Signed-off-by: Sasha Levin --- fs/io_uring.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/fs/io_uring.c b/fs/io_uring.c index 4ccf99cb8cdc..0de27e75460d 100644 --- a/fs/io_uring.c +++ b/fs/io_uring.c @@ -1489,7 +1489,7 @@ static void io_queue_async_work(struct io_kiocb *req) io_queue_linked_timeout(link); } -static void io_kill_timeout(struct io_kiocb *req) +static void io_kill_timeout(struct io_kiocb *req, int status) { struct io_timeout_data *io = req->async_data; int ret; @@ -1499,7 +1499,7 @@ static void io_kill_timeout(struct io_kiocb *req) atomic_set(&req->ctx->cq_timeouts, atomic_read(&req->ctx->cq_timeouts) + 1); list_del_init(&req->timeout.list); - io_cqring_fill_event(req, 0); + io_cqring_fill_event(req, status); io_put_req_deferred(req, 1); } } @@ -1516,7 +1516,7 @@ static bool io_kill_timeouts(struct io_ring_ctx *ctx, struct task_struct *tsk, spin_lock_irq(&ctx->completion_lock); list_for_each_entry_safe(req, tmp, &ctx->timeout_list, timeout.list) { if (io_match_task(req, tsk, files)) { - io_kill_timeout(req); + io_kill_timeout(req, -ECANCELED); canceled++; } } @@ -1568,7 +1568,7 @@ static void io_flush_timeouts(struct io_ring_ctx *ctx) break; list_del_init(&req->timeout.list); - io_kill_timeout(req); + io_kill_timeout(req, 0); } while (!list_empty(&ctx->timeout_list)); ctx->cq_last_tm_flush = seq; -- 2.30.2