Skip to content

Commit 927b6b2

Browse files
kawasakiaxboe
authored andcommitted
block: Fix null_blk_zoned creation failure with small number of zones
null_blk_zoned creation fails if the number of zones specified is equal to or is smaller than 64 due to a memory allocation failure in blk_alloc_zones(). With such a small number of zones, the required memory size for all zones descriptors fits in a single page, and the page order for alloc_pages_node() is zero. Allow this value in blk_alloc_zones() for the allocation to succeed. Fixes: bf50545 "block: Introduce blk_revalidate_disk_zones()" Reviewed-by: Damien Le Moal <damien.lemoal@wdc.com> Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
1 parent a538e3f commit 927b6b2

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

block/blk-zoned.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -378,7 +378,7 @@ static struct blk_zone *blk_alloc_zones(int node, unsigned int *nr_zones)
378378
struct page *page;
379379
int order;
380380

381-
for (order = get_order(size); order > 0; order--) {
381+
for (order = get_order(size); order >= 0; order--) {
382382
page = alloc_pages_node(node, GFP_NOIO | __GFP_ZERO, order);
383383
if (page) {
384384
*nr_zones = min_t(unsigned int, *nr_zones,

0 commit comments

Comments
 (0)