Skip to content

Commit 5d381ef

Browse files
committed
Revert "block: recursive merge requests"
This reverts commit 2741932. We have some problems related to selection of empty queues that need to be resolved, evidence so far points to the recursive merge logic making either being the cause or at least the accelerator for this. So revert it for now, until we figure this out. Signed-off-by: Jens Axboe <[email protected]>
1 parent 6898e3b commit 5d381ef

File tree

1 file changed

+4
-12
lines changed

1 file changed

+4
-12
lines changed

block/elevator.c

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -515,7 +515,6 @@ static bool elv_attempt_insert_merge(struct request_queue *q,
515515
struct request *rq)
516516
{
517517
struct request *__rq;
518-
bool ret;
519518

520519
if (blk_queue_nomerges(q))
521520
return false;
@@ -529,21 +528,14 @@ static bool elv_attempt_insert_merge(struct request_queue *q,
529528
if (blk_queue_noxmerges(q))
530529
return false;
531530

532-
ret = false;
533531
/*
534532
* See if our hash lookup can find a potential backmerge.
535533
*/
536-
while (1) {
537-
__rq = elv_rqhash_find(q, blk_rq_pos(rq));
538-
if (!__rq || !blk_attempt_req_merge(q, __rq, rq))
539-
break;
540-
541-
/* The merged request could be merged with others, try again */
542-
ret = true;
543-
rq = __rq;
544-
}
534+
__rq = elv_rqhash_find(q, blk_rq_pos(rq));
535+
if (__rq && blk_attempt_req_merge(q, __rq, rq))
536+
return true;
545537

546-
return ret;
538+
return false;
547539
}
548540

549541
void elv_merged_request(struct request_queue *q, struct request *rq, int type)

0 commit comments

Comments
 (0)