The secondary superblock must reside on the same device than the
primary superblock, so there's no need to re-calculate the device.

Signed-off-by: Hannes Reinecke <[email protected]>
---
 drivers/md/dm-zoned-metadata.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/md/dm-zoned-metadata.c b/drivers/md/dm-zoned-metadata.c
index b70a988fa771..fdae4e0228e7 100644
--- a/drivers/md/dm-zoned-metadata.c
+++ b/drivers/md/dm-zoned-metadata.c
@@ -1141,7 +1141,7 @@ static int dmz_lookup_secondary_sb(struct dmz_metadata 
*zmd)
        /* Bad first super block: search for the second one */
        zmd->sb[1].block = zmd->sb[0].block + zone_nr_blocks;
        zmd->sb[1].zone = xa_load(&zmd->zones, zone_id + 1);
-       zmd->sb[1].dev = dmz_zone_to_dev(zmd, zmd->sb[1].zone);
+       zmd->sb[1].dev = zmd->sb[0].dev;
        for (i = 1; i < zmd->nr_rnd_zones; i++) {
                if (dmz_read_sb(zmd, &zmd->sb[1], 1) != 0)
                        break;
@@ -1149,7 +1149,6 @@ static int dmz_lookup_secondary_sb(struct dmz_metadata 
*zmd)
                        return 0;
                zmd->sb[1].block += zone_nr_blocks;
                zmd->sb[1].zone = dmz_get(zmd, zone_id + i);
-               zmd->sb[1].dev = dmz_zone_to_dev(zmd, zmd->sb[1].zone);
        }
 
        dmz_free_mblock(zmd, mblk);
@@ -1272,7 +1271,7 @@ static int dmz_load_sb(struct dmz_metadata *zmd)
                        zmd->sb[1].zone = dmz_get(zmd, zone_id);
                }
                zmd->sb[1].block = dmz_start_block(zmd, zmd->sb[1].zone);
-               zmd->sb[1].dev = dmz_zone_to_dev(zmd, zmd->sb[1].zone);
+               zmd->sb[1].dev = zmd->sb[0].dev;
                ret = dmz_get_sb(zmd, &zmd->sb[1], 1);
        } else
                ret = dmz_lookup_secondary_sb(zmd);
-- 
2.16.4

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

Reply via email to