Introduce dmz_metadata_label() to format the device-mapper device
name and use it instead of the device name of the underlying device.

Signed-off-by: Hannes Reinecke <[email protected]>
---
 drivers/md/dm-zoned-metadata.c | 11 ++++++++++-
 drivers/md/dm-zoned-reclaim.c  | 15 ++++++++-------
 drivers/md/dm-zoned-target.c   | 17 ++++++++++-------
 drivers/md/dm-zoned.h          |  4 +++-
 4 files changed, 31 insertions(+), 16 deletions(-)

diff --git a/drivers/md/dm-zoned-metadata.c b/drivers/md/dm-zoned-metadata.c
index ae261bf6452c..f7ae57e78230 100644
--- a/drivers/md/dm-zoned-metadata.c
+++ b/drivers/md/dm-zoned-metadata.c
@@ -134,6 +134,8 @@ struct dmz_sb {
 struct dmz_metadata {
        struct dmz_dev          *dev;
 
+       char                    devname[BDEVNAME_SIZE];
+
        sector_t                zone_bitmap_size;
        unsigned int            zone_nr_bitmap_blocks;
        unsigned int            zone_bits_per_mblk;
@@ -265,6 +267,11 @@ unsigned int dmz_nr_unmap_seq_zones(struct dmz_metadata 
*zmd)
        return atomic_read(&zmd->unmap_nr_seq);
 }
 
+const char *dmz_metadata_label(struct dmz_metadata *zmd)
+{
+       return (const char *)zmd->devname;
+}
+
 /*
  * Lock/unlock mapping table.
  * The map lock also protects all the zone lists.
@@ -2445,7 +2452,8 @@ static void dmz_cleanup_metadata(struct dmz_metadata *zmd)
 /*
  * Initialize the zoned metadata.
  */
-int dmz_ctr_metadata(struct dmz_dev *dev, struct dmz_metadata **metadata)
+int dmz_ctr_metadata(struct dmz_dev *dev, struct dmz_metadata **metadata,
+                    const char *devname)
 {
        struct dmz_metadata *zmd;
        unsigned int i, zid;
@@ -2456,6 +2464,7 @@ int dmz_ctr_metadata(struct dmz_dev *dev, struct 
dmz_metadata **metadata)
        if (!zmd)
                return -ENOMEM;
 
+       strcpy(zmd->devname, devname);
        zmd->dev = dev;
        zmd->mblk_rbtree = RB_ROOT;
        init_rwsem(&zmd->mblk_sem);
diff --git a/drivers/md/dm-zoned-reclaim.c b/drivers/md/dm-zoned-reclaim.c
index 95d2c8870480..c46159b6fc46 100644
--- a/drivers/md/dm-zoned-reclaim.c
+++ b/drivers/md/dm-zoned-reclaim.c
@@ -481,15 +481,16 @@ static void dmz_reclaim_work(struct work_struct *work)
                zrc->kc_throttle.throttle = min(75U, 100U - p_unmap_rnd / 2);
        }
 
-       dmz_dev_debug(zrc->dev,
-                     "Reclaim (%u): %s, %u%% free rnd zones (%u/%u)",
-                     zrc->kc_throttle.throttle,
-                     (dmz_target_idle(zrc) ? "Idle" : "Busy"),
-                     p_unmap_rnd, nr_unmap_rnd, nr_rnd);
+       DMDEBUG("(%s): Reclaim (%u): %s, %u%% free rnd zones (%u/%u)",
+               dmz_metadata_label(zmd),
+               zrc->kc_throttle.throttle,
+               (dmz_target_idle(zrc) ? "Idle" : "Busy"),
+               p_unmap_rnd, nr_unmap_rnd, nr_rnd);
 
        ret = dmz_do_reclaim(zrc);
        if (ret) {
-               dmz_dev_debug(zrc->dev, "Reclaim error %d\n", ret);
+               DMDEBUG("(%s): Reclaim error %d\n",
+                       dmz_metadata_label(zmd), ret);
                if (!dmz_check_bdev(zrc->dev))
                        return;
        }
@@ -525,7 +526,7 @@ int dmz_ctr_reclaim(struct dmz_dev *dev, struct 
dmz_metadata *zmd,
        /* Reclaim work */
        INIT_DELAYED_WORK(&zrc->work, dmz_reclaim_work);
        zrc->wq = alloc_ordered_workqueue("dmz_rwq_%s", WQ_MEM_RECLAIM,
-                                         dev->name);
+                                         dmz_metadata_label(zmd));
        if (!zrc->wq) {
                ret = -ENOMEM;
                goto err;
diff --git a/drivers/md/dm-zoned-target.c b/drivers/md/dm-zoned-target.c
index f4e3be7f9474..c2c3aa090f97 100644
--- a/drivers/md/dm-zoned-target.c
+++ b/drivers/md/dm-zoned-target.c
@@ -782,7 +782,8 @@ static int dmz_ctr(struct dm_target *ti, unsigned int argc, 
char **argv)
 
        /* Initialize metadata */
        dev = dmz->dev;
-       ret = dmz_ctr_metadata(dev, &dmz->metadata);
+       ret = dmz_ctr_metadata(dev, &dmz->metadata,
+                              dm_table_device_name(ti->table));
        if (ret) {
                ti->error = "Metadata initialization failed";
                goto err_dev;
@@ -811,8 +812,9 @@ static int dmz_ctr(struct dm_target *ti, unsigned int argc, 
char **argv)
        /* Chunk BIO work */
        mutex_init(&dmz->chunk_lock);
        INIT_RADIX_TREE(&dmz->chunk_rxtree, GFP_NOIO);
-       dmz->chunk_wq = alloc_workqueue("dmz_cwq_%s", WQ_MEM_RECLAIM | 
WQ_UNBOUND,
-                                       0, dev->name);
+       dmz->chunk_wq = alloc_workqueue("dmz_cwq_%s",
+                                       WQ_MEM_RECLAIM | WQ_UNBOUND, 0,
+                                       dmz_metadata_label(dmz->metadata));
        if (!dmz->chunk_wq) {
                ti->error = "Create chunk workqueue failed";
                ret = -ENOMEM;
@@ -824,7 +826,7 @@ static int dmz_ctr(struct dm_target *ti, unsigned int argc, 
char **argv)
        bio_list_init(&dmz->flush_list);
        INIT_DELAYED_WORK(&dmz->flush_work, dmz_flush_work);
        dmz->flush_wq = alloc_ordered_workqueue("dmz_fwq_%s", WQ_MEM_RECLAIM,
-                                               dev->name);
+                                               
dmz_metadata_label(dmz->metadata));
        if (!dmz->flush_wq) {
                ti->error = "Create flush workqueue failed";
                ret = -ENOMEM;
@@ -839,9 +841,10 @@ static int dmz_ctr(struct dm_target *ti, unsigned int 
argc, char **argv)
                goto err_fwq;
        }
 
-       dmz_dev_info(dev, "Target device: %llu 512-byte logical sectors (%llu 
blocks)",
-                    (unsigned long long)ti->len,
-                    (unsigned long long)dmz_sect2blk(ti->len));
+       DMINFO("(%s): Target device: %llu 512-byte logical sectors (%llu 
blocks)",
+              dmz_metadata_label(dmz->metadata),
+              (unsigned long long)ti->len,
+              (unsigned long long)dmz_sect2blk(ti->len));
 
        return 0;
 err_fwq:
diff --git a/drivers/md/dm-zoned.h b/drivers/md/dm-zoned.h
index c1b7b9a729c2..f7df7f67e404 100644
--- a/drivers/md/dm-zoned.h
+++ b/drivers/md/dm-zoned.h
@@ -163,7 +163,8 @@ struct dmz_reclaim;
 /*
  * Functions defined in dm-zoned-metadata.c
  */
-int dmz_ctr_metadata(struct dmz_dev *dev, struct dmz_metadata **zmd);
+int dmz_ctr_metadata(struct dmz_dev *dev, struct dmz_metadata **zmd,
+                    const char *devname);
 void dmz_dtr_metadata(struct dmz_metadata *zmd);
 int dmz_resume_metadata(struct dmz_metadata *zmd);
 
@@ -174,6 +175,7 @@ void dmz_unlock_metadata(struct dmz_metadata *zmd);
 void dmz_lock_flush(struct dmz_metadata *zmd);
 void dmz_unlock_flush(struct dmz_metadata *zmd);
 int dmz_flush_metadata(struct dmz_metadata *zmd);
+const char *dmz_metadata_label(struct dmz_metadata *zmd);
 
 unsigned int dmz_id(struct dmz_metadata *zmd, struct dm_zone *zone);
 sector_t dmz_start_sect(struct dmz_metadata *zmd, struct dm_zone *zone);
-- 
2.25.0


--
dm-devel mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/dm-devel

Reply via email to