On 10/19/21 7:44 AM, Christoph Hellwig wrote: > On Tue, Oct 19, 2021 at 07:43:04AM -0600, Jens Axboe wrote: >> On 10/19/21 7:39 AM, Christoph Hellwig wrote: >>> If RQF_ELVPRIV is set RQF_ELV is by definition set as well. >>> >>> Signed-off-by: Christoph Hellwig <hch@xxxxxx> >>> --- >>> block/blk-mq.c | 2 +- >>> 1 file changed, 1 insertion(+), 1 deletion(-) >>> >>> diff --git a/block/blk-mq.c b/block/blk-mq.c >>> index 428e0e0fd5504..34392c439d2a8 100644 >>> --- a/block/blk-mq.c >>> +++ b/block/blk-mq.c >>> @@ -580,7 +580,7 @@ void blk_mq_free_request(struct request *rq) >>> struct request_queue *q = rq->q; >>> struct blk_mq_hw_ctx *hctx = rq->mq_hctx; >>> >>> - if (rq->rq_flags & (RQF_ELVPRIV | RQF_ELV)) { >>> + if (rq->rq_flags & RQF_ELV) { >> >> Actually just fixed a bug there. RQF_ELV means "we have an IO >> scheduler", and RQF_ELVPRIV means that plus "we have rq private data". >> The above shouldn't check RQF_ELV at all, just PRIV. > > Well, in that case RQF_ELVPRIV can be replaced with > RQF_ELV && !op_is_flush as in the next patch. But I can resend once I > see the fix in a tree somewhere. That'd be great. It's in for-5.16/block -- Jens Axboe