From patchwork Thu Jan 10 03:12:17 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: 1022681 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 43ZrgG5rZKz9sND; Thu, 10 Jan 2019 14:13:46 +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 1ghQmr-00074p-LE; Thu, 10 Jan 2019 03:13:41 +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 1ghQmY-0006t8-VG for kernel-team@lists.ubuntu.com; Thu, 10 Jan 2019 03:13:22 +0000 Received: from mail-qt1-f199.google.com ([209.85.160.199]) by youngberry.canonical.com with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.76) (envelope-from ) id 1ghQmY-0000Y4-KK for kernel-team@lists.ubuntu.com; Thu, 10 Jan 2019 03:13:22 +0000 Received: by mail-qt1-f199.google.com with SMTP id 42so8715233qtr.7 for ; Wed, 09 Jan 2019 19:13:22 -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=E8cKpZeyEiXaJjl2YJLCp80irH7wz4460EE9TrAXuNQ=; b=mKxVo8BZhIaS25k4v+rKX3tQVYbAdXW5EGqI0oubNWiSWIShtD3RzMEA720JJKiYak Yg7uY9ZD5KoTaL0H6j6zoAYa3cvRruVtgKycjm1a+C4f4phoHFo2XqJz1f3FhzTG/0D+ wjSLF2+xUHy5fgjPHUFjd+Q63h6kJwHn1Y/QmtQ9A4xKkY3XJEdxEw0bRB4Msn/j9c7+ tm06QU7QfeOOoX2W7UMCGBaGhUqbEgBsHkJiTB2B+6DBEKp2f2a1AgBq9DSh5flQCdsY /Mc4G9znc440OHZwbd8WwyVLk+8N3R2mxFGvcnVO2PbHuH0fYKu7ilIYM6xoG7bBiMeK bPRg== X-Gm-Message-State: AJcUukc9lR+KMygJcOOyj8aHzFmTP3rVP4lCMeEtNTneq6Tn4wMCt3wI ooXPtj9ua/T0kc/zpuIPd6JM5Jn+SGh7AnhPoOCprbGw19SoqKB8AJw1XExmpwTUfmszXdHUHxk oCOauVi+OXwnh9msbmNxR/YXrP+h6Gw+SdNNLg0CEJA== X-Received: by 2002:ac8:45c9:: with SMTP id e9mr8319309qto.273.1547090001750; Wed, 09 Jan 2019 19:13:21 -0800 (PST) X-Google-Smtp-Source: ALg8bN4yfMgTScJ45Ux2Qcbz+rZElNTvtuZyomJY0OPe9uOi3goNLyZnnOzcLs++8uWfEB3ljQPcOg== X-Received: by 2002:ac8:45c9:: with SMTP id e9mr8319305qto.273.1547090001578; Wed, 09 Jan 2019 19:13:21 -0800 (PST) Received: from localhost.localdomain ([177.181.227.0]) by smtp.gmail.com with ESMTPSA id s9sm43971956qta.35.2019.01.09.19.13.20 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 09 Jan 2019 19:13:21 -0800 (PST) From: Mauricio Faria de Oliveira To: kernel-team@lists.ubuntu.com Subject: [SRU B][PATCH 11/13] blk-wbt: abstract out end IO completion handler Date: Thu, 10 Jan 2019 01:12:17 -0200 Message-Id: <20190110031219.30676-12-mfo@canonical.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190110031219.30676-1-mfo@canonical.com> References: <20190110031219.30676-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 (cherry picked from commit 061a5427530633de93ace4ef001b99961984af62) Signed-off-by: Mauricio Faria de Oliveira --- block/blk-wbt.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/block/blk-wbt.c b/block/blk-wbt.c index 2d9e0e8b92e1..6180dd527666 100644 --- a/block/blk-wbt.c +++ b/block/blk-wbt.c @@ -121,16 +121,11 @@ static void rwb_wake_all(struct rq_wb *rwb) } } -static void __wbt_done(struct rq_qos *rqos, 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_wb *rwb = RQWB(rqos); - 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 +160,18 @@ static void __wbt_done(struct rq_qos *rqos, enum wbt_flags wb_acct) } } +static void __wbt_done(struct rq_qos *rqos, enum wbt_flags wb_acct) +{ + struct rq_wb *rwb = RQWB(rqos); + 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.