ANDROID: dm-default-key: support report_zones

This patch links report_zone in dm-default-key, Android-only feature, in
order to support zoned devices [1].

[1] https://zonedstorage.io/docs/linux/overview

Bug: 228969778
Bug: 160885805
Signed-off-by: Jaegeuk Kim <jaegeuk@google.com>
Change-Id: I05163d471c1a06e12ff58cf73276ad0adc6d4978
This commit is contained in:
Jaegeuk Kim
2022-04-12 19:47:33 -07:00
parent 35a1f5b99c
commit fa1f371e63

View File

@@ -393,10 +393,25 @@ static void default_key_io_hints(struct dm_target *ti,
limits->io_min = max_t(unsigned int, limits->io_min, sector_size); limits->io_min = max_t(unsigned int, limits->io_min, sector_size);
} }
#ifdef CONFIG_BLK_DEV_ZONED
static int default_key_report_zones(struct dm_target *ti,
struct dm_report_zones_args *args, unsigned int nr_zones)
{
struct default_key_c *dkc = ti->private;
return dm_report_zones(dkc->dev->bdev, dkc->start,
dkc->start + dm_target_offset(ti, args->next_sector),
args, nr_zones);
}
#else
#define default_key_report_zones NULL
#endif
static struct target_type default_key_target = { static struct target_type default_key_target = {
.name = "default-key", .name = "default-key",
.version = {2, 1, 0}, .version = {2, 1, 0},
.features = DM_TARGET_PASSES_CRYPTO, .features = DM_TARGET_PASSES_CRYPTO | DM_TARGET_ZONED_HM,
.report_zones = default_key_report_zones,
.module = THIS_MODULE, .module = THIS_MODULE,
.ctr = default_key_ctr, .ctr = default_key_ctr,
.dtr = default_key_dtr, .dtr = default_key_dtr,