提交 cd30d3bc 编写于 作者: N Naohiro Aota 提交者: David Sterba

btrfs: zoned: fix uninitialized variable warning in btrfs_get_dev_zones

Fix an uninitialized warning we get with -Wmaybe-uninitialized where it
thought zno may have been uninitialized, in both cases it depends on
zinfo->zone_cache but we know the value won't change between checks.
Reported-by: NJosef Bacik <josef@toxicpanda.com>
Link: https://lore.kernel.org/linux-btrfs/af6c527cbd8bdc782e50bd33996ee83acc3a16fb.1671221596.git.josef@toxicpanda.com/Signed-off-by: NNaohiro Aota <naohiro.aota@wdc.com>
Reviewed-by: NDavid Sterba <dsterba@suse.com>
Signed-off-by: NDavid Sterba <dsterba@suse.com>
上级 12adffe6
...@@ -220,7 +220,6 @@ static int btrfs_get_dev_zones(struct btrfs_device *device, u64 pos, ...@@ -220,7 +220,6 @@ static int btrfs_get_dev_zones(struct btrfs_device *device, u64 pos,
struct blk_zone *zones, unsigned int *nr_zones) struct blk_zone *zones, unsigned int *nr_zones)
{ {
struct btrfs_zoned_device_info *zinfo = device->zone_info; struct btrfs_zoned_device_info *zinfo = device->zone_info;
u32 zno;
int ret; int ret;
if (!*nr_zones) if (!*nr_zones)
...@@ -235,6 +234,7 @@ static int btrfs_get_dev_zones(struct btrfs_device *device, u64 pos, ...@@ -235,6 +234,7 @@ static int btrfs_get_dev_zones(struct btrfs_device *device, u64 pos,
/* Check cache */ /* Check cache */
if (zinfo->zone_cache) { if (zinfo->zone_cache) {
unsigned int i; unsigned int i;
u32 zno;
ASSERT(IS_ALIGNED(pos, zinfo->zone_size)); ASSERT(IS_ALIGNED(pos, zinfo->zone_size));
zno = pos >> zinfo->zone_size_shift; zno = pos >> zinfo->zone_size_shift;
...@@ -274,9 +274,12 @@ static int btrfs_get_dev_zones(struct btrfs_device *device, u64 pos, ...@@ -274,9 +274,12 @@ static int btrfs_get_dev_zones(struct btrfs_device *device, u64 pos,
return -EIO; return -EIO;
/* Populate cache */ /* Populate cache */
if (zinfo->zone_cache) if (zinfo->zone_cache) {
u32 zno = pos >> zinfo->zone_size_shift;
memcpy(zinfo->zone_cache + zno, zones, memcpy(zinfo->zone_cache + zno, zones,
sizeof(*zinfo->zone_cache) * *nr_zones); sizeof(*zinfo->zone_cache) * *nr_zones);
}
return 0; return 0;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册