A target, like the upcoming thin provisioning target, may want to allow discards even if the underlying devices do not support them natively. Signed-off-by: Mike Snitzer <snitzer@xxxxxxxxxx> --- drivers/md/dm-table.c | 4 ++++ include/linux/device-mapper.h | 6 ++++++ 2 files changed, 10 insertions(+), 0 deletions(-) diff --git a/drivers/md/dm-table.c b/drivers/md/dm-table.c index cb8380c..75b0430 100644 --- a/drivers/md/dm-table.c +++ b/drivers/md/dm-table.c @@ -1354,6 +1354,10 @@ bool dm_table_supports_discards(struct dm_table *t) while (i < dm_table_get_num_targets(t)) { ti = dm_table_get_target(t, i++); + /* target supports discards even if underlying devices cannot */ + if (ti->discards_supported) + return 1; + if (ti->type->iterate_devices && ti->type->iterate_devices(ti, device_discard_capable, NULL)) return 1; diff --git a/include/linux/device-mapper.h b/include/linux/device-mapper.h index 32a4423..c9e7ff5 100644 --- a/include/linux/device-mapper.h +++ b/include/linux/device-mapper.h @@ -191,6 +191,12 @@ struct dm_target { /* Used to provide an error string from the ctr */ char *error; + + /* + * Enable discards even if the table's underlying devices + * do not have native discard support. + */ + unsigned discards_supported:1; }; /* Each target can link one of these into the table */ -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel