Hello, The 1st patch checks max discard segment limit in request merge code, and one discard request failure is fixed for virtio_blk. The 2nd patch fixes handling of single max discard segment for virtio_blk, and potential memory corruption is fixed. The 3rd patch renames the confusing blk_discard_mergable(). The biggest problem is that virtio_blk handles discard request in multi-range style, however it(at least qemu) may claim that multi range discard isn't supported by returning 1 for max discard segment. V3: - one patch style change in patch 1, as suggested by Christoph - add reviewed-by tag V2: - add comment - warn on mismatched bios and discard segment number - rename blk_discard_mergable Ming Lei (3): block: respect queue limit of max discard segment block: virtio_blk: fix handling single range discard request block: rename blk_discard_mergable as blk_discard_support_multi_range block/blk-merge.c | 22 ++++++++++++++++------ drivers/block/virtio_blk.c | 31 +++++++++++++++++++++++-------- 2 files changed, 39 insertions(+), 14 deletions(-) Cc: Christoph Hellwig <hch@xxxxxx> Cc: Changpeng Liu <changpeng.liu@xxxxxxxxx> Cc: Daniel Verkamp <dverkamp@xxxxxxxxxxxx> Cc: Michael S. Tsirkin <mst@xxxxxxxxxx> Cc: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Cc: Stefano Garzarella <sgarzare@xxxxxxxxxx> -- 2.25.2