From 22d5a9e86f776be55ca481dc4fbb326f3eb20eb8 Mon Sep 17 00:00:00 2001 From: Jaegeuk Kim Date: Tue, 12 Apr 2022 19:47:33 -0700 Subject: [PATCH] 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 Change-Id: I05163d471c1a06e12ff58cf73276ad0adc6d4978 --- drivers/md/dm-default-key.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/drivers/md/dm-default-key.c b/drivers/md/dm-default-key.c index 9b3af1e77478..d19f9b0fb8c1 100644 --- a/drivers/md/dm-default-key.c +++ b/drivers/md/dm-default-key.c @@ -392,10 +392,25 @@ static void default_key_io_hints(struct dm_target *ti, 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 = { .name = "default-key", .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, .ctr = default_key_ctr, .dtr = default_key_dtr,