提交 3c4da758 编写于 作者: A Arnd Bergmann 提交者: Jens Axboe

block: zoned: fix harmless maybe-uninitialized warning

The blkdev_report_zones produces a harmless warning when
-Wmaybe-uninitialized is set, after gcc gets a little confused
about the multiple 'goto' here:

block/blk-zoned.c: In function 'blkdev_report_zones':
block/blk-zoned.c:188:13: error: 'nz' may be used uninitialized in this function [-Werror=maybe-uninitialized]

Moving the assignment to nr_zones makes this a little simpler
while also avoiding the warning reliably. I'm removing the
extraneous initialization of 'int ret' in the same patch, as
that is semi-related and could cause an uninitialized use of
that variable to not produce a warning.

Fixes: 6a0cb1bc ("block: Implement support for zoned block devices")
Signed-off-by: NArnd Bergmann <arnd@arndb.de>
Reviewed-by: NShaun Tancheff <shaun.tancheff@seagate.com>
Reviewed-by: NDamien Le Moal <damien.lemoal@wdc.com>
Signed-off-by: NJens Axboe <axboe@fb.com>
上级 89d94756
...@@ -80,7 +80,7 @@ int blkdev_report_zones(struct block_device *bdev, ...@@ -80,7 +80,7 @@ int blkdev_report_zones(struct block_device *bdev,
unsigned int i, n, nz; unsigned int i, n, nz;
unsigned int ofst; unsigned int ofst;
void *addr; void *addr;
int ret = 0; int ret;
if (!q) if (!q)
return -ENXIO; return -ENXIO;
...@@ -179,14 +179,12 @@ int blkdev_report_zones(struct block_device *bdev, ...@@ -179,14 +179,12 @@ int blkdev_report_zones(struct block_device *bdev,
} }
*nr_zones = nz;
out: out:
bio_for_each_segment_all(bv, bio, i) bio_for_each_segment_all(bv, bio, i)
__free_page(bv->bv_page); __free_page(bv->bv_page);
bio_put(bio); bio_put(bio);
if (ret == 0)
*nr_zones = nz;
return ret; return ret;
} }
EXPORT_SYMBOL_GPL(blkdev_report_zones); EXPORT_SYMBOL_GPL(blkdev_report_zones);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册