lkml.org 
[lkml]   [2018]   [Aug]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Date
SubjectRe: linux-next: Tree for Aug 1
On Fri, Aug 3, 2018 at 12:40 AM, Bart Van Assche <Bart.VanAssche@wdc.com> wrote:
> On Fri, 2018-08-03 at 00:27 +0800, Ming Lei wrote:
>> This issue can be fixed by reverting d250bf4e776ff09d5 ("blk-mq: only iterate over
>> inflight requests in blk_mq_tagset_busy_iter").
>>
>> This patch looks wrong, because 'blk_mq_rq_state(rq) == MQ_RQ_IN_FLIGHT'
>> isn't completely same with 'blk_mq_request_started(req)'.
>
> Please test the following change instead of reverting the commit mentioned
> above:
>
> diff --git a/block/blk-mq-tag.c b/block/blk-mq-tag.c
> index 09b2ee6694fb..25a0583d8b4c 100644
> --- a/block/blk-mq-tag.c
> +++ b/block/blk-mq-tag.c
> @@ -271,7 +271,7 @@ static bool bt_tags_iter(struct sbitmap *bitmap, unsigned int bitnr, void *data)
> * test and set the bit before assining ->rqs[].
> */
> rq = tags->rqs[bitnr];
> - if (rq && blk_mq_rq_state(rq) == MQ_RQ_IN_FLIGHT)
> + if (rq && blk_mq_rq_state(rq) != MQ_RQ_IDLE)
> iter_data->fn(rq, iter_data->data, reserved);
>
> return true;
>

I just sent out a similar patch on list, but use blk_mq_request_started()
instead.

https://marc.info/?l=linux-scsi&m=153322823307754&w=2

Thanks,
Ming Lei

\
 
 \ /
  Last update: 2018-08-02 18:51    [W:0.042 / U:0.272 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site