]> git.hungrycats.org Git - linux/commitdiff
null_blk: Fix return value of nullb_device_power_store()
authorDamien Le Moal <dlemoal@kernel.org>
Mon, 27 May 2024 04:34:45 +0000 (13:34 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 22 Nov 2024 14:37:35 +0000 (15:37 +0100)
commit d9ff882b54f99f96787fa3df7cd938966843c418 upstream.

When powering on a null_blk device that is not already on, the return
value ret that is initialized to be count is reused to check the return
value of null_add_dev(), leading to nullb_device_power_store() to return
null_add_dev() return value (0 on success) instead of "count".
So make sure to set ret to be equal to count when there are no errors.

Fixes: a2db328b0839 ("null_blk: fix null-ptr-dereference while configuring 'power' and 'submit_queues'")
Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
Reviewed-by: Yu Kuai <yukuai3@huawei.com>
Reviewed-by: Kanchan Joshi <joshi.k@samsung.com>
Link: https://lore.kernel.org/r/20240527043445.235267-1-dlemoal@kernel.org
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/block/null_blk/main.c

index e838eed4aacfaec67f383946d89218da9ebe81f2..e66cace433cbf6ee545c455e40bd5c57ffc4d260 100644 (file)
@@ -470,6 +470,7 @@ static ssize_t nullb_device_power_store(struct config_item *item,
 
                set_bit(NULLB_DEV_FL_CONFIGURED, &dev->flags);
                dev->power = newp;
+               ret = count;
        } else if (dev->power && !newp) {
                if (test_and_clear_bit(NULLB_DEV_FL_UP, &dev->flags)) {
                        dev->power = newp;