Blob Blame History Raw
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
@@ -5663,7 +5663,7 @@ static void bfq_insert_request(struct bl
 #endif
 	spin_lock_irq(&bfqd->lock);
 	bfqq = bfq_init_rq(rq);
-	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
@@ -485,11 +485,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
@@ -16,8 +16,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;
 	}