mirror of https://gitee.com/openkylin/linux.git
btrfs: zoned: use sector_t for zone sectors
We need to use sector_t for zone_sectors, or it would set the zone size
to zero when the size >= 4GB (= 2^24 sectors) by shifting the
zone_sectors value by SECTOR_SHIFT. We're assuming zones sizes up to
8GiB.
Fixes: 5b31646898
("btrfs: get zone information of zoned block devices")
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: Naohiro Aota <naohiro.aota@wdc.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
c28ea613fa
commit
d734492a14
|
@ -269,7 +269,7 @@ int btrfs_get_dev_zone_info(struct btrfs_device *device)
|
|||
sector_t sector = 0;
|
||||
struct blk_zone *zones = NULL;
|
||||
unsigned int i, nreported = 0, nr_zones;
|
||||
unsigned int zone_sectors;
|
||||
sector_t zone_sectors;
|
||||
char *model, *emulated;
|
||||
int ret;
|
||||
|
||||
|
@ -658,7 +658,7 @@ int btrfs_sb_log_location_bdev(struct block_device *bdev, int mirror, int rw,
|
|||
u64 *bytenr_ret)
|
||||
{
|
||||
struct blk_zone zones[BTRFS_NR_SB_LOG_ZONES];
|
||||
unsigned int zone_sectors;
|
||||
sector_t zone_sectors;
|
||||
u32 sb_zone;
|
||||
int ret;
|
||||
u8 zone_sectors_shift;
|
||||
|
|
Loading…
Reference in New Issue