block: Remove should_sort judgement when flush blk_plug.
PATCH 1/1 block: Remove should_sort judgement when flush blk_plug.
In commit 975927b942c932,it add blk_rq_pos to sort rq when flushing. Although this commit was used for the situation which blk_plug handled multi devices on the same time like md device.
I think there must be some situations like this but only single device.
So remove the should_sort judgement.
Because the parameter should_sort is only for this purpose,it can delete should_sort from blk_plug.
--- block/blk-core.c | 13 +------------ include/linux/blkdev.h | 1 - 2 files changed, 1 insertion(+), 13 deletions(-)
block/blk-core.c +1 -12
@@ -1548,13 +1548,6 @@ get_rq:if (list_empty (&plug->list))trace_block_plug (q);else { -if (!plug->should_sort) { -struct request *__rq; - - __rq =list_entry_rq (plug->list.prev); -if (__rq->q != q) - plug->should_sort =1 ; - }if (request_count >=BLK_MAX_REQUEST_COUNT ) {blk_flush_plug_list (plug, false);trace_block_plug (q);
@@ -2888,7 +2881,6 @@ void blk_start_plug(struct blk_plug *plug) plug->magic =PLUG_MAGIC ;INIT_LIST_HEAD (&plug->list);INIT_LIST_HEAD (&plug->cb_list); - plug->should_sort =0 ;/* * If this is a nested plug, don't actually assign it. It will be
@@ -2990,10 +2982,7 @@ void blk_flush_plug_list(struct blk_plug *plug, bool from_schedule)list_splice_init (&plug->list, &list); -if (plug->should_sort) { -list_sort (NULL , &list, plug_rq_cmp); - plug->should_sort =0 ; - } +list_sort (NULL , &list, plug_rq_cmp); q =NULL ; depth =0 ;
include/linux/blkdev.h +0 -1
@@ -974,7 +974,6 @@ struct blk_plug {unsigned long magic;/* detect uninitialized use-cases */ struct list_head list;/* requests */ struct list_head cb_list;/* md requires an unplug callback */ -unsigned int should_sort;/* list to be sorted before flushing? */ };#define BLK_MAX_REQUEST_COUNT 16
Signature · 2 lines
1.7.9.5
�翳簕.n�+壏煯壄�+%娝�遍荻w�簕.n�+壏{炳G珴�妠ay�蕠跈�,jf"穐殢飦�戧鐉_璁(殠娸"濟�m���G珴�⒏?櫒璀�&x忈秈O曟瑉窔v豝�m����鹅�⒏?朓�Jens Axboe
maintainerQuoted 8 lines · majianpeng
In commit 975927b942c932,it add
blk_rq_posto sort rq when flushing. Although this commit was used for the situation whichblk_plughandled multi devices on the same time like md device.
I think there must be some situations like this but only single device.
So remove theshould_sortjudgement.
Because the parametershould_sortis only for this purpose,it can deleteshould_sortfromblk_plug.
Agree with the patch. It does not make sense to have ->should_sort and not set it for all the conditions that the list_sort() compare now checks for.
Applied for 3.9, thanks.
Signature · 1 line
Jens Axboe