aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/include/linux/device-mapper.h
diff options
context:
space:
mode:
authorDamien Le Moal <damien.lemoal@wdc.com>2017-05-08 16:40:48 -0700
committerMike Snitzer <snitzer@redhat.com>2017-06-19 11:03:51 -0400
commit10999307c14eac281fbec3ada73bee7a05bd41dc (patch)
treef8898affec3c6857bfe1dcf86fd44160443d9fea /include/linux/device-mapper.h
parentdm: fix REQ_OP_ZONE_REPORT bio handling (diff)
downloadwireguard-linux-10999307c14eac281fbec3ada73bee7a05bd41dc.tar.xz
wireguard-linux-10999307c14eac281fbec3ada73bee7a05bd41dc.zip
dm: introduce dm_remap_zone_report()
A target driver support zoned block devices and exposing it as such may receive REQ_OP_ZONE_REPORT request for the user to determine the mapped device zone configuration. To process properly such request, the target driver may need to remap the zone descriptors provided in the report reply. The helper function dm_remap_zone_report() does this generically using only the target start offset and length and the start offset within the target device. dm_remap_zone_report() will remap the start sector of all zones reported. If the report includes sequential zones, the write pointer position of these zones will also be remapped. Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com> Reviewed-by: Hannes Reinecke <hare@suse.com> Reviewed-by: Bart Van Assche <bart.vanassche@sandisk.com> Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Diffstat (limited to 'include/linux/device-mapper.h')
-rw-r--r--include/linux/device-mapper.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/device-mapper.h b/include/linux/device-mapper.h
index 186ef74009cb..0c1b50ad23b0 100644
--- a/include/linux/device-mapper.h
+++ b/include/linux/device-mapper.h
@@ -450,6 +450,8 @@ struct gendisk *dm_disk(struct mapped_device *md);
int dm_suspended(struct dm_target *ti);
int dm_noflush_suspending(struct dm_target *ti);
void dm_accept_partial_bio(struct bio *bio, unsigned n_sectors);
+void dm_remap_zone_report(struct dm_target *ti, struct bio *bio,
+ sector_t start);
union map_info *dm_get_rq_mapinfo(struct request *rq);
struct queue_limits *dm_get_queue_limits(struct mapped_device *md);