From: Jan Kara <jack@suse.cz>
Subject: kabi: block: Fix kabi of blk_mq_sched_try_insert_merge()
References: bsc#1191456
Patch-mainline: Never, kabi fix
Instead of changing prototype of blk_mq_sched_try_insert_merge(), create new
function blk_mq_sched_try_insert_merge_list() so that kabi is preserved.
Signed-off-by: Jan Kara <jack@suse.cz>
---
block/bfq-iosched.c | 2 +-
block/blk-mq-sched.c | 17 +++++++++++++++--
block/blk-mq-sched.h | 5 +++--
block/mq-deadline.c | 2 +-
4 files changed, 20 insertions(+), 6 deletions(-)
--- a/block/bfq-iosched.c
+++ b/block/bfq-iosched.c
@@ -5515,7 +5515,7 @@ static void bfq_insert_request(struct bl
LIST_HEAD(free);
spin_lock_irq(&bfqd->lock);
- if (blk_mq_sched_try_insert_merge(q, rq, &free)) {
+ if (blk_mq_sched_try_insert_merge_list(q, rq, &free)) {
spin_unlock_irq(&bfqd->lock);
blk_mq_free_requests(&free);
return;
--- a/block/blk-mq-sched.c
+++ b/block/blk-mq-sched.c
@@ -372,11 +372,24 @@ bool __blk_mq_sched_bio_merge(struct req
return ret;
}
-bool blk_mq_sched_try_insert_merge(struct request_queue *q, struct request *rq,
- struct list_head *free)
+bool blk_mq_sched_try_insert_merge_list(struct request_queue *q,
+ struct request *rq,
+ struct list_head *free)
{
return rq_mergeable(rq) && elv_attempt_insert_merge(q, rq, free);
}
+EXPORT_SYMBOL_GPL(blk_mq_sched_try_insert_merge_list);
+
+bool blk_mq_sched_try_insert_merge(struct request_queue *q, struct request *rq)
+{
+ LIST_HEAD(free);
+
+ if (blk_mq_sched_try_insert_merge_list(q, rq, &free)) {
+ blk_mq_free_requests(&free);
+ return true;
+ }
+ return false;
+}
EXPORT_SYMBOL_GPL(blk_mq_sched_try_insert_merge);
void blk_mq_sched_request_inserted(struct request *rq)
--- a/block/blk-mq-sched.h
+++ b/block/blk-mq-sched.h
@@ -15,8 +15,9 @@ bool blk_mq_sched_try_merge(struct reque
unsigned int nr_segs, struct request **merged_request);
bool __blk_mq_sched_bio_merge(struct request_queue *q, struct bio *bio,
unsigned int nr_segs);
-bool blk_mq_sched_try_insert_merge(struct request_queue *q, struct request *rq,
- struct list_head *free);
+bool blk_mq_sched_try_insert_merge(struct request_queue *q, struct request *rq);
+bool blk_mq_sched_try_insert_merge_list(struct request_queue *q,
+ struct request *rq, struct list_head *free);
void blk_mq_sched_mark_restart_hctx(struct blk_mq_hw_ctx *hctx);
void blk_mq_sched_restart(struct blk_mq_hw_ctx *hctx);
--- a/block/mq-deadline.c
+++ b/block/mq-deadline.c
@@ -494,7 +494,7 @@ static void dd_insert_request(struct blk
*/
blk_req_zone_write_unlock(rq);
- if (blk_mq_sched_try_insert_merge(q, rq, &free)) {
+ if (blk_mq_sched_try_insert_merge_list(q, rq, &free)) {
blk_mq_free_requests(&free);
return;
}