Linux block layer
 help / color / mirror / Atom feed
* [PATCH] null_blk: Fix return value of nullb_device_power_store()
@ 2024-05-27  4:34 ` Damien Le Moal
  2024-05-27  5:33   ` Kanchan Joshi
                     ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Damien Le Moal @ 2024-05-27  4:34 UTC (permalink / raw)
  To: Jens Axboe, linux-block; +Cc: Yu Kuai

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>
---
 drivers/block/null_blk/main.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/block/null_blk/main.c b/drivers/block/null_blk/main.c
index eb023d267369..631dca2e4e84 100644
--- a/drivers/block/null_blk/main.c
+++ b/drivers/block/null_blk/main.c
@@ -494,6 +494,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;
-- 
2.45.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] null_blk: Fix return value of nullb_device_power_store()
  2024-05-27  4:34 ` [PATCH] null_blk: Fix return value of nullb_device_power_store() Damien Le Moal
@ 2024-05-27  5:33   ` Kanchan Joshi
  2024-05-27  6:32   ` Yu Kuai
  2024-05-27 19:57   ` Jens Axboe
  2 siblings, 0 replies; 4+ messages in thread
From: Kanchan Joshi @ 2024-05-27  5:33 UTC (permalink / raw)
  To: Damien Le Moal, Jens Axboe, linux-block; +Cc: Yu Kuai

Reviewed-by: Kanchan Joshi <joshi.k@samsung.com>


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] null_blk: Fix return value of nullb_device_power_store()
  2024-05-27  4:34 ` [PATCH] null_blk: Fix return value of nullb_device_power_store() Damien Le Moal
  2024-05-27  5:33   ` Kanchan Joshi
@ 2024-05-27  6:32   ` Yu Kuai
  2024-05-27 19:57   ` Jens Axboe
  2 siblings, 0 replies; 4+ messages in thread
From: Yu Kuai @ 2024-05-27  6:32 UTC (permalink / raw)
  To: Damien Le Moal, Jens Axboe, linux-block, yukuai (C)

Hi,

在 2024/05/27 12:34, Damien Le Moal 写道:
> 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.

Yes, thanks for the patch!

And the reason test did't find this problem is that the "echo" cmd will
write again to the configfs entry, and nullb_device_power_store() will
found the allocated nullb_device.

Reviewed-by: Yu Kuai <yukuai3@huawei.com>
> 
> Fixes: a2db328b0839 ("null_blk: fix null-ptr-dereference while configuring 'power' and 'submit_queues'")
> Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
> ---
>   drivers/block/null_blk/main.c | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/block/null_blk/main.c b/drivers/block/null_blk/main.c
> index eb023d267369..631dca2e4e84 100644
> --- a/drivers/block/null_blk/main.c
> +++ b/drivers/block/null_blk/main.c
> @@ -494,6 +494,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;
> 


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] null_blk: Fix return value of nullb_device_power_store()
  2024-05-27  4:34 ` [PATCH] null_blk: Fix return value of nullb_device_power_store() Damien Le Moal
  2024-05-27  5:33   ` Kanchan Joshi
  2024-05-27  6:32   ` Yu Kuai
@ 2024-05-27 19:57   ` Jens Axboe
  2 siblings, 0 replies; 4+ messages in thread
From: Jens Axboe @ 2024-05-27 19:57 UTC (permalink / raw)
  To: linux-block, Damien Le Moal; +Cc: Yu Kuai


On Mon, 27 May 2024 13:34:45 +0900, Damien Le Moal wrote:
> 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.
> 
> 
> [...]

Applied, thanks!

[1/1] null_blk: Fix return value of nullb_device_power_store()
      commit: d9ff882b54f99f96787fa3df7cd938966843c418

Best regards,
-- 
Jens Axboe




^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2024-05-27 19:57 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <CGME20240527043455epcas5p18a6d514da1e203726501570b07fc8d19@epcas5p1.samsung.com>
2024-05-27  4:34 ` [PATCH] null_blk: Fix return value of nullb_device_power_store() Damien Le Moal
2024-05-27  5:33   ` Kanchan Joshi
2024-05-27  6:32   ` Yu Kuai
2024-05-27 19:57   ` Jens Axboe

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox