Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp2827363pxv; Mon, 12 Jul 2021 02:56:20 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy6H59LtBLZqxKsAWpqakooodjYvTkDfwHy5uybMyuIY8Jd/6iTbFBVHa41POZ2W34DzbbM X-Received: by 2002:a92:b745:: with SMTP id c5mr8370891ilm.251.1626083780431; Mon, 12 Jul 2021 02:56:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626083780; cv=none; d=google.com; s=arc-20160816; b=ipXtCxtTfsRpi9zsjgO9G6AhEPCLWw6/YTY2SsWLl9o+bHerV0Vs65ijKWVirNRAs2 ThXawgc9SxCKu3SWr9ldPsD2TNHQdRbHgMoV/OYQ0AY5Tbl860eOE3lz7a9w01CYPD3g O1jaI0DPQuaWYU5Xz0/yztw9iIZRZI2sfOH8vLFiBv6CayTglbeU/MaMK+n8lZtr3xHT K2aO5JHliGlGruzCKC/mF5jrJW4Yc9txGQ814XcynLgTzFGT13m3VCl3vXqOxabhRiB4 VulFJSbBmTvIYZVY6pgW6Oy8B2ejPz9AZ/SDdgJnzF38gM56dHQPAXbTi98zO5vWGHCu Vv1Q== 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=Bhr2eJCyuIdVSqaVRfYTmkwO8vLmzTEJU+SYsx9Ppmo=; b=yEmqm3fGEUCaWAHLTS7W1hyacP3g40sH2BxoNsOAZIa/hy8ShyT6fAAS4rozF24lj9 CHjTxMe3HOvXyEdaLBtLHFWo54vrYDq2R3tCJ1/POmULV+gMumONptxHBR9+i86o+ANN MMyRMR8f2QEWfZdz2lWtqF458libGa8YlPjm80vln15wJAy9dPSB5JGK1/JH9aAuKRVA tMhob0/hLS0lHp1ONbKSLISUbnxIsFgt4ugeqSTrTbw64vvcU1Ql/HsP4BpGadQSGO1i hgAglTUrvlNbYZh4S6rZVGYBGYgOFc4GtLS1sKdMT8F7QrjXEqz1jxHQI1RTKxwPrEua YaEQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=ITpRHXYD; 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 t7si17447906jam.62.2021.07.12.02.56.09; Mon, 12 Jul 2021 02:56:20 -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=ITpRHXYD; 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 S240049AbhGLG5j (ORCPT + 99 others); Mon, 12 Jul 2021 02:57:39 -0400 Received: from mail.kernel.org ([198.145.29.99]:34334 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238647AbhGLGlj (ORCPT ); Mon, 12 Jul 2021 02:41:39 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 512F461008; Mon, 12 Jul 2021 06:38:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1626071920; bh=O24PZaQC9+WmVpAnHZLud64EGWmN8B/X3stNANXkEpQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ITpRHXYDWTtJBeCrWv8+VsyrI5DyVGePVqa6uYjxyrlOidvccuIQh+dLRUf8IALCa Z8SzMjG87vwvi4t8XqkO86OfwWurghiK1yyLdDp/MMB1SoyUtaGcrw1wluh3qqNJVI hndO9RDXIJ/gVv+U3X6wbJ4MsJ96kz8//IQWsnLY= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Bart Van Assche , Christoph Hellwig , John Garry , Ming Lei , Jens Axboe , Sasha Levin Subject: [PATCH 5.10 276/593] block: avoid double io accounting for flush request Date: Mon, 12 Jul 2021 08:07:16 +0200 Message-Id: <20210712060914.267900165@linuxfoundation.org> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210712060843.180606720@linuxfoundation.org> References: <20210712060843.180606720@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: Ming Lei [ Upstream commit 84da7acc3ba53af26f15c4b0ada446127b7a7836 ] For flush request, rq->end_io() may be called two times, one is from timeout handling(blk_mq_check_expired()), another is from normal completion(__blk_mq_end_request()). Move blk_account_io_flush() after flush_rq->ref drops to zero, so io accounting can be done just once for flush request. Fixes: b68663186577 ("block: add iostat counters for flush requests") Reviewed-by: Bart Van Assche Reviewed-by: Christoph Hellwig Tested-by: John Garry Signed-off-by: Ming Lei Link: https://lore.kernel.org/r/20210511152236.763464-2-ming.lei@redhat.com Signed-off-by: Jens Axboe Signed-off-by: Sasha Levin --- block/blk-flush.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/block/blk-flush.c b/block/blk-flush.c index fd5cee9f1a3b..7ee7e5e8905d 100644 --- a/block/blk-flush.c +++ b/block/blk-flush.c @@ -220,8 +220,6 @@ static void flush_end_io(struct request *flush_rq, blk_status_t error) unsigned long flags = 0; struct blk_flush_queue *fq = blk_get_flush_queue(q, flush_rq->mq_ctx); - blk_account_io_flush(flush_rq); - /* release the tag's ownership to the req cloned from */ spin_lock_irqsave(&fq->mq_flush_lock, flags); @@ -231,6 +229,7 @@ static void flush_end_io(struct request *flush_rq, blk_status_t error) return; } + blk_account_io_flush(flush_rq); /* * Flush request has to be marked as IDLE when it is really ended * because its .end_io() is called from timeout code path too for -- 2.30.2