From patchwork Fri Jan 11 11:07:56 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mauricio Faria de Oliveira X-Patchwork-Id: 1023515 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.ubuntu.com (client-ip=91.189.94.19; helo=huckleberry.canonical.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=canonical.com Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 43bg8Y2FHBz9sLw; Fri, 11 Jan 2019 22:08:29 +1100 (AEDT) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.86_2) (envelope-from ) id 1ghufo-00079n-Bx; Fri, 11 Jan 2019 11:08:24 +0000 Received: from youngberry.canonical.com ([91.189.89.112]) by huckleberry.canonical.com with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.86_2) (envelope-from ) id 1ghufm-000782-69 for kernel-team@lists.ubuntu.com; Fri, 11 Jan 2019 11:08:22 +0000 Received: from mail-qt1-f198.google.com ([209.85.160.198]) by youngberry.canonical.com with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.76) (envelope-from ) id 1ghufl-0004tU-GX for kernel-team@lists.ubuntu.com; Fri, 11 Jan 2019 11:08:21 +0000 Received: by mail-qt1-f198.google.com with SMTP id z6so16132963qtj.21 for ; Fri, 11 Jan 2019 03:08:21 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references; bh=vPtrLWdWAsc8czQ+zPGIvu3T5DyA3hB5vLTWe1aBtWM=; b=M1tVy3SovWg7ovhAa5xDvhMCH4RScfTZhMsbqjrAURu9BN468poM2EWRyCXUOqFN96 jFsWYtcrfauRGi/RcdllLjsBN8EqreVnFmHGD80+RG8Wk4iJbdM4zW0cjABYbdxUFOeQ Qcsn27WdtjHJxM3UgNcaRoox+MY7qT8KEfz6bdkO52eyOhzu1sndd3xr2taGQnzBU7/9 qJCX1thl+u0vetMLELH+qMXeyiTjdTRTNftlMIc9mhvTrM3prVpOv0qlssxMHmqL4VHX lxuvdKUEjCxvZb0tVq0hlmY17eWNYxt50MS8yJWsrEgPuhdqeAHZ02GUv0judKG+QKhM GAOw== X-Gm-Message-State: AJcUukfboRBOZUQVjTZYWf2Vxlvm8o2+rHFjrpx6SIMIgZ+NCZp+i7Er q/biao7B/Hz1/hYO5WTcLClcAIkWN2uCRRvgPv4d7hnnYBOd8kZHsZ5BCjMkkyi9BJhwtLHxVy2 v8cuVx1MyRLkKck6BTgotx/xcLJzrNArBwmRoQ9H3uw== X-Received: by 2002:ac8:30ac:: with SMTP id v41mr13051055qta.51.1547204900468; Fri, 11 Jan 2019 03:08:20 -0800 (PST) X-Google-Smtp-Source: ALg8bN5pxRF7dkMp03wzVYVAW7mrNqalFZtoftKWkZfKBvnbkBeomIR55qJLaPlPz6uGsBSUv/hzAA== X-Received: by 2002:ac8:30ac:: with SMTP id v41mr13051044qta.51.1547204900304; Fri, 11 Jan 2019 03:08:20 -0800 (PST) Received: from localhost.localdomain ([177.181.227.3]) by smtp.gmail.com with ESMTPSA id o65sm39280460qkl.11.2019.01.11.03.08.17 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 11 Jan 2019 03:08:19 -0800 (PST) From: Mauricio Faria de Oliveira To: kernel-team@lists.ubuntu.com Subject: [SRU B][PATCH v2 6/7] blk-wbt: abstract out end IO completion handler Date: Fri, 11 Jan 2019 09:07:56 -0200 Message-Id: <20190111110757.17936-7-mfo@canonical.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190111110757.17936-1-mfo@canonical.com> References: <20190111110757.17936-1-mfo@canonical.com> X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: "kernel-team" From: Jens Axboe BugLink: https://bugs.launchpad.net/bugs/1810998 Prep patch for calling the handler from a different context, no functional changes in this patch. Tested-by: Agarwal, Anchal Signed-off-by: Jens Axboe (backported from commit 061a5427530633de93ace4ef001b99961984af62) [mfo: backport: __wbt_done(): - keep signature (not static; parameters; no 'rqos') - remove the cast to 'rwb' from 'rqos' (it doesn't exist).] Signed-off-by: Mauricio Faria de Oliveira --- block/blk-wbt.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/block/blk-wbt.c b/block/blk-wbt.c index b2fe2682b3f9..d891b4f80c2f 100644 --- a/block/blk-wbt.c +++ b/block/blk-wbt.c @@ -122,15 +122,11 @@ static void rwb_wake_all(struct rq_wb *rwb) } } -void __wbt_done(struct rq_wb *rwb, enum wbt_flags wb_acct) +static void wbt_rqw_done(struct rq_wb *rwb, struct rq_wait *rqw, + enum wbt_flags wb_acct) { - struct rq_wait *rqw; int inflight, limit; - if (!(wb_acct & WBT_TRACKED)) - return; - - rqw = get_rq_wait(rwb, wb_acct); inflight = atomic_dec_return(&rqw->inflight); /* @@ -165,6 +161,17 @@ void __wbt_done(struct rq_wb *rwb, enum wbt_flags wb_acct) } } +void __wbt_done(struct rq_wb *rwb, enum wbt_flags wb_acct) +{ + struct rq_wait *rqw; + + if (!(wb_acct & WBT_TRACKED)) + return; + + rqw = get_rq_wait(rwb, wb_acct); + wbt_rqw_done(rwb, rqw, wb_acct); +} + /* * Called on completion of a request. Note that it's also called when * a request is merged, when the request gets freed.