[Devel] [PATCH hci-8.1 0/2] dm-qcow2, dm-ploop: do not merge discards with gaps

Andrey Zhadchenko andrey.zhadchenko at virtuozzo.com
Mon Nov 9 18:36:17 MSK 2026


The block layer may merge non-contiguous discard bios into a single
request when the queue allows more than one discard segment, and the
stacking default for dm is max_discard_segments = USHRT_MAX.

Both dm-qcow2 and dm-ploop handle a discard request as one contiguous
range taken from blk_rq_pos() and blk_rq_bytes(). For a request built
from bios [0, 512) and [1024, 1536) they discard [0, 1024), which hits
sectors that were never asked to be discarded and misses part of the
range that was.

Set max_discard_segments to 1 in both targets so each discard request
always describes a single contiguous range.

https://virtuozzo.atlassian.net/browse/VSTOR-154159

Andrey Zhadchenko (2):
  dm-qcow2: set max discard segments to one
  dm-ploop: set max discard segments to one

 drivers/md/dm-ploop-target.c | 1 +
 drivers/md/dm-qcow2-target.c | 1 +
 2 files changed, 2 insertions(+)

-- 
2.43.5



More information about the Devel mailing list