On Thu, May 10, 2018 at 10:24:19AM -0600, Jens Axboe wrote:
> It's not useful, they are internal and/or error handling recovery
> commands.
>
> Acked-by: Paolo Valente
Reviewed-by: Omar Sandoval
> Signed-off-by: Jens Axboe
> ---
> block/blk-mq.c | 6 --
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/block/blk-mq.c b/block/blk-mq.c
> index 4e9d83594cca..64630caaf27e 100644
> --- a/block/blk-mq.c
> +++ b/block/blk-mq.c
> @@ -360,9 +360,11 @@ static struct request *blk_mq_get_request(struct
> request_queue *q,
>
> /*
>* Flush requests are special and go directly to the
> - * dispatch list.
> + * dispatch list. Don't include reserved tags in the
> + * limiting, as it isn't useful.
>*/
> - if (!op_is_flush(op) && e->type->ops.mq.limit_depth)
> + if (!op_is_flush(op) && e->type->ops.mq.limit_depth &&
> + !(data->flags & BLK_MQ_REQ_RESERVED))
> e->type->ops.mq.limit_depth(op, data);
> }
>
> --
> 2.7.4
>