Message ID | 20220215115951.15945-1-kch@nvidia.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | null_blk: fix return value from null_add_dev() | expand |
On Tue, 15 Feb 2022 03:59:51 -0800, Chaitanya Kulkarni wrote: > The function nullb_device_power_store() returns -ENOMEM when > null_add_dev() fails. null_add_dev() can fail with return value > other than -ENOMEM such as -EINVAL when Zoned Block Device option > is used, see : > > nullb_device_power_store() > null_add_dev() > null_init_zoned_dev() > return -EINVAL; > > [...] Applied, thanks! [1/1] null_blk: fix return value from null_add_dev() (no commit info) Best regards,
diff --git a/drivers/block/null_blk/main.c b/drivers/block/null_blk/main.c index 323af5c9c802..1666bd9c4ad7 100644 --- a/drivers/block/null_blk/main.c +++ b/drivers/block/null_blk/main.c @@ -431,9 +431,10 @@ static ssize_t nullb_device_power_store(struct config_item *item, if (!dev->power && newp) { if (test_and_set_bit(NULLB_DEV_FL_UP, &dev->flags)) return count; - if (null_add_dev(dev)) { + ret = null_add_dev(dev); + if (ret) { clear_bit(NULLB_DEV_FL_UP, &dev->flags); - return -ENOMEM; + return ret; } set_bit(NULLB_DEV_FL_CONFIGURED, &dev->flags);
The function nullb_device_power_store() returns -ENOMEM when null_add_dev() fails. null_add_dev() can fail with return value other than -ENOMEM such as -EINVAL when Zoned Block Device option is used, see : nullb_device_power_store() null_add_dev() null_init_zoned_dev() return -EINVAL; When trying to load the module having -ENOMEM value returned on the command line creates confusion when pleanty of memory is free on the machine. Instead of hardcoding -ENOMEM return the value of null_add_dev() function. Signed-off-by: Chaitanya Kulkarni <kch@nvidia.com> --- * without this patch nr_zones set to 23 :- loading devices ++ seq 0 1 + for i in `seq 0 $NN` + NULLB_DIR=config/nullb/nullb0 + mkdir config/nullb/nullb0 + echo 1 + echo 23 + echo 0 + echo 1 + echo 512 + echo 2048 + echo 1 ./nullbtests.sh: line 23: echo: write error: Cannot allocate memory * with this patch nr_zones set to 23 :- + for i in `seq 0 $NN` + NULLB_DIR=config/nullb/nullb1 + mkdir config/nullb/nullb1 + echo 1 + echo 23 + echo 1 + echo 512 + echo 2048 + echo 1 ./nullbtests.sh: line 23: echo: write error: Invalid argument --- drivers/block/null_blk/main.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)