Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ac857e0d authored by Filippo Muzzini's avatar Filippo Muzzini Committed by Jens Axboe
Browse files

block, bfq: remove the removal of 'next' rq in bfq_requests_merged



Since bfq_finish_request() is always called on the request 'next',
after bfq_requests_merged() is finished, and bfq_finish_request()
removes 'next' from its bfq_queue if needed, it isn't necessary to do
such a removal in advance in bfq_merged_requests().

This commit removes such a useless 'next' removal.

Signed-off-by: default avatarFilippo Muzzini <filippo.muzzini@outlook.it>
Signed-off-by: default avatarPaolo Valente <paolo.valente@linaro.org>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 8abfa4d6
Loading
Loading
Loading
Loading
+0 −7
Original line number Diff line number Diff line
@@ -1845,8 +1845,6 @@ static void bfq_request_merged(struct request_queue *q, struct request *req,
 * exploits this hook to address the following issue: if 'next' has a
 * fifo_time lower that rq, then the fifo_time of rq must be set to
 * the value of 'next', to not forget the greater age of 'next'.
 * Moreover 'next' may be in a bfq_queue, in this case it must be
 * removed.
 *
 * NOTE: in this function we assume that rq is in a bfq_queue, basing
 * on that rq is picked from the hash table q->elevator->hash, which,
@@ -1881,11 +1879,6 @@ static void bfq_requests_merged(struct request_queue *q, struct request *rq,
	if (bfqq->next_rq == next)
		bfqq->next_rq = rq;

	if (!RB_EMPTY_NODE(&next->rb_node)) {
		bfq_remove_request(q, next);
		bfqg_stats_update_io_remove(bfqq_group(bfqq), next->cmd_flags);
	}

	bfqg_stats_update_io_merged(bfqq_group(bfqq), next->cmd_flags);
}