|
@@ -326,7 +326,8 @@ bool __blk_mq_sched_bio_merge(struct request_queue *q, struct bio *bio)
|
|
return e->type->ops.mq.bio_merge(hctx, bio);
|
|
return e->type->ops.mq.bio_merge(hctx, bio);
|
|
}
|
|
}
|
|
|
|
|
|
- if (hctx->flags & BLK_MQ_F_SHOULD_MERGE) {
|
|
|
|
|
|
+ if ((hctx->flags & BLK_MQ_F_SHOULD_MERGE) &&
|
|
|
|
+ !list_empty_careful(&ctx->rq_list)) {
|
|
/* default per sw-queue merge */
|
|
/* default per sw-queue merge */
|
|
spin_lock(&ctx->lock);
|
|
spin_lock(&ctx->lock);
|
|
ret = blk_mq_attempt_merge(q, ctx, bio);
|
|
ret = blk_mq_attempt_merge(q, ctx, bio);
|