Lines Matching refs:zd
1488 static int zonefs_create_zgroup(struct zonefs_zone_data *zd,
1491 struct super_block *sb = zd->sb;
1501 if (!zd->nr_zones[type])
1522 end = zd->zones + blkdev_nr_zones(sb->s_bdev->bd_disk);
1523 for (zone = &zd->zones[1]; zone < end; zone = next) {
1585 struct zonefs_zone_data *zd = data;
1595 zd->nr_zones[ZONEFS_ZTYPE_CNV]++;
1600 zd->nr_zones[ZONEFS_ZTYPE_SEQ]++;
1603 zonefs_err(zd->sb, "Unsupported zone type 0x%x\n",
1608 memcpy(&zd->zones[idx], zone, sizeof(struct blk_zone));
1613 static int zonefs_get_zone_info(struct zonefs_zone_data *zd)
1615 struct block_device *bdev = zd->sb->s_bdev;
1618 zd->zones = kvcalloc(blkdev_nr_zones(bdev->bd_disk),
1620 if (!zd->zones)
1625 zonefs_get_zone_info_cb, zd);
1627 zonefs_err(zd->sb, "Zone report failed %d\n", ret);
1632 zonefs_err(zd->sb, "Invalid zone report (%d/%u zones)\n",
1640 static inline void zonefs_cleanup_zone_info(struct zonefs_zone_data *zd)
1642 kvfree(zd->zones);
1738 struct zonefs_zone_data zd;
1789 memset(&zd, 0, sizeof(struct zonefs_zone_data));
1790 zd.sb = sb;
1791 ret = zonefs_get_zone_info(&zd);
1823 ret = zonefs_create_zgroup(&zd, t);
1829 zonefs_cleanup_zone_info(&zd);