This patchset enables discard support for most of the DM targets that discards are intended to be supported on. This patchset is also available here: http://people.redhat.com/msnitzer/patches/dm-discard-advanced/latest/ The stripe target's discard support was the most tedious and challenging to implement. It may see further edits before it lands upstream. The mirror target still needs discard support. Either I or someone else (nudge: Mikulas and/or Jon? :) will need to implement that. The snapshot and crypt targets will not have discard support. Snapshots must preserve any data that is deleted so the value of discard is negligible. Discard support for the origin target may be considered in the future (could be especially useful if origin and COW are different devices and origin is a thinly provisioned LUN). Crypt devices are concerned with security and, until proven otherwise, it is believed that discards will leak too much pattern information to the crypt device's underlying storage (especially when underlying storage uses discards that zero data). Mike Snitzer (12): dm: rename map_info flush_request to target_request_nr dm: introduce num_discard_requests in dm_target structure dm: remove the DM_TARGET_SUPPORTS_DISCARDS feature flag dm: use common __issue_target_request for flush and discard support dm: factor max_io_len for code reuse dm: split discard requests on target boundaries dm zero: silently drop discards too dm error: return error for discards too dm delay: enable discard support block: update request stacking methods to support discards dm mpath: enable discard support dm stripe: enable efficient discard support block/blk-core.c | 5 + drivers/md/dm-delay.c | 1 + drivers/md/dm-linear.c | 2 +- drivers/md/dm-mpath.c | 1 + drivers/md/dm-snap.c | 2 +- drivers/md/dm-stripe.c | 180 ++++++++++++++++++++++++++++++++++++++--- drivers/md/dm-table.c | 2 +- drivers/md/dm-target.c | 3 + drivers/md/dm-zero.c | 3 + drivers/md/dm.c | 89 +++++++++++++------- include/linux/device-mapper.h | 11 ++- 11 files changed, 253 insertions(+), 46 deletions(-) -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel