On Sat, May 21, 2022 at 11:56:26AM -0700, Gwendal Grignou wrote: > From: Ming Lei <ming.lei@xxxxxxxxxx> > > When merging one bio to request, if they are discard IO and the queue > supports multi-range discard, we need to return ELEVATOR_DISCARD_MERGE > because both block core and related drivers(nvme, virtio-blk) doesn't > handle mixed discard io merge(traditional IO merge together with > discard merge) well. > > Fix the issue by returning ELEVATOR_DISCARD_MERGE in this situation, > so both blk-mq and drivers just need to handle multi-range discard. > > Reported-by: Oleksandr Natalenko <oleksandr@xxxxxxxxxxxxxx> > Signed-off-by: Ming Lei <ming.lei@xxxxxxxxxx> > Tested-by: Oleksandr Natalenko <oleksandr@xxxxxxxxxxxxxx> > Fixes: 2705dfb20947 ("block: fix discard request merge") > Link: https://lore.kernel.org/r/20210729034226.1591070-1-ming.lei@xxxxxxxxxx > Signed-off-by: Jens Axboe <axboe@xxxxxxxxx> > > commit 866663b7b52d2 upstream. > > Similar to commit 87aa69aa10b42 ("block: return ELEVATOR_DISCARD_MERGE if possible") > in 5.10 kernel. > > Conflicts: > block/blk-merge.c: function at a different place. > block/mq-deadline-main.c: not in 5.4, use mq-deadline.c instead. > > Cc: <stable@xxxxxxxxxxxxxxx> # 5.4.y > Signed-off-by: Gwendal Grignou <gwendal@xxxxxxxxxxxx> Now queued up, thanks. greg k-h