From 061a5427530633de93ace4ef001b99961984af62 Mon Sep 17 00:00:00 2001
From: Jens Axboe <axboe@kernel.dk>
Date: Sun, 26 Aug 2018 10:09:06 -0600
Subject: [PATCH] blk-wbt: abstract out end IO completion handler
Git-commit: 061a5427530633de93ace4ef001b99961984af62
Patch-mainline: v4.19-rc2
References: bsc#1135873
Prep patch for calling the handler from a different context,
no functional changes in this patch.
Tested-by: Agarwal, Anchal <anchalag@amazon.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Acked-by: Jan Kara <jack@suse.cz>
---
block/blk-wbt.c | 19 +++++++++++++------
1 file changed, 13 insertions(+), 6 deletions(-)
--- a/block/blk-wbt.c
+++ b/block/blk-wbt.c
@@ -118,15 +118,11 @@ static void rwb_wake_all(struct rq_wb *r
}
}
-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 & WBT_KSWAPD);
inflight = atomic_dec_return(&rqw->inflight);
/*
@@ -161,6 +157,17 @@ void __wbt_done(struct rq_wb *rwb, enum
}
}
+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_KSWAPD);
+ 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.