From f90c6378a56382194c8ada18fc140615e09fd12b Mon Sep 17 00:00:00 2001 From: Shuhei Matsumoto Date: Mon, 16 Nov 2020 18:30:04 +0900 Subject: [PATCH] bdev/ocssd: Clean-up three small helper functions for zone Clean-up bdev_ocssd_num_zones(), bdev_ocssd_get_zone_by_lba(), and bdev_ocssd_get_zone_by_slba() to make a little easier to read and understand. Signed-off-by: Shuhei Matsumoto Change-Id: I13c92dc86dc3855f1ec9ab5ae9d7097607f20512 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/5129 Community-CI: Broadcom CI Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins Reviewed-by: Jim Harris Reviewed-by: Aleksey Marchuk --- module/bdev/nvme/bdev_ocssd.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/module/bdev/nvme/bdev_ocssd.c b/module/bdev/nvme/bdev_ocssd.c index 8512a6ff3..aeaf18486 100644 --- a/module/bdev/nvme/bdev_ocssd.c +++ b/module/bdev/nvme/bdev_ocssd.c @@ -182,32 +182,33 @@ SPDK_BDEV_MODULE_REGISTER(ocssd, &ocssd_if); static uint64_t bdev_ocssd_num_zones(const struct ocssd_bdev *ocssd_bdev) { - return ocssd_bdev->nvme_bdev.disk.blockcnt / ocssd_bdev->nvme_bdev.disk.zone_size; + const struct spdk_bdev *bdev = &ocssd_bdev->nvme_bdev.disk; + + return bdev->blockcnt / bdev->zone_size; } static struct bdev_ocssd_zone * -bdev_ocssd_get_zone_by_lba(struct ocssd_bdev *ocssd_bdev, uint64_t lba) +bdev_ocssd_get_zone_by_lba(const struct ocssd_bdev *ocssd_bdev, uint64_t lba) { - struct nvme_bdev *nvme_bdev = &ocssd_bdev->nvme_bdev; - size_t zone_size = nvme_bdev->disk.zone_size; + const struct spdk_bdev *bdev = &ocssd_bdev->nvme_bdev.disk; - if (lba >= nvme_bdev->disk.blockcnt) { + if (lba >= bdev->blockcnt) { return NULL; } - return &ocssd_bdev->zones[lba / zone_size]; + return &ocssd_bdev->zones[lba / bdev->zone_size]; } static struct bdev_ocssd_zone * bdev_ocssd_get_zone_by_slba(struct ocssd_bdev *ocssd_bdev, uint64_t slba) { - struct nvme_bdev *nvme_bdev = &ocssd_bdev->nvme_bdev; + const struct spdk_bdev *bdev = &ocssd_bdev->nvme_bdev.disk; - if (slba % nvme_bdev->disk.zone_size != 0) { + if (slba % bdev->zone_size != 0 || slba >= bdev->blockcnt) { return NULL; } - return bdev_ocssd_get_zone_by_lba(ocssd_bdev, slba); + return &ocssd_bdev->zones[slba / bdev->zone_size]; } static void