diff options
author | Damien Le Moal <dlemoal@kernel.org> | 2024-05-27 07:34:45 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2024-06-12 12:39:50 +0300 |
commit | 48ca521e95d2e549cc41446eefe926ddd76369c6 (patch) | |
tree | 9528af77a64c9218dc11ebccfe74d8043248f7ee | |
parent | b81e1c5a3c70398cf76631ede63a03616ed1ba3c (diff) | |
download | linux-48ca521e95d2e549cc41446eefe926ddd76369c6.tar.xz |
null_blk: Fix return value of nullb_device_power_store()
[ Upstream commit d9ff882b54f99f96787fa3df7cd938966843c418 ]
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: Sasha Levin <sashal@kernel.org>
-rw-r--r-- | drivers/block/null_blk/main.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/block/null_blk/main.c b/drivers/block/null_blk/main.c index 3b3fd093b004..620679a0ac38 100644 --- a/drivers/block/null_blk/main.c +++ b/drivers/block/null_blk/main.c @@ -483,6 +483,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; |