Re: [PATCH V4 5/9] null_blk: free zones array on device power-off

From: Nilay Shroff

Date: Fri Jul 10 2026 - 10:26:27 EST


On 7/9/26 3:34 PM, Zizhi Wo wrote:
null_init_zoned_dev() allocates dev->zones when a zoned device is powered
on, but null_del_dev() never frees it on power-off; dev->zones is only
freed later in null_free_dev(), when the configfs directory is removed. If
the device is powered off and then on again, null_init_zoned_dev()
allocates a new array and overwrites the dev->zones pointer, leaking the
previous allocation each power cycle.

Free dev->zones in null_del_dev() via null_free_zoned_dev() to solve it.
And calling null_del_dev() in null_free_dev() is no longer necessary
because every caller already invokes null_del_dev() first: via
nullb_group_drop_item() before nullb_device_release(), in the
null_add_dev() error path of null_create_dev(), and in null_destroy_dev().
Remove the redundant call.

Looks good to me.

Reviewed-by: Nilay Shroff <nilay@xxxxxxxxxxxxx>