diff mbox series

[v2] block/snapshot: Fix compiler warning with -Wshadow=local

Message ID 20231023175038.111607-1-thuth@redhat.com
State New
Headers show
Series [v2] block/snapshot: Fix compiler warning with -Wshadow=local | expand

Commit Message

Thomas Huth Oct. 23, 2023, 5:50 p.m. UTC
No need to declare a new variable in the the inner code block
here, we can re-use the "ret" variable that has been declared
at the beginning of the function. With this change, the code
can now be successfully compiled with -Wshadow=local again.

Fixes: a32e781838 ("Mark bdrv_snapshot_fallback() and callers GRAPH_RDLOCK")
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 v2: Assign "ret" only in one spot

 block/snapshot.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

Comments

Markus Armbruster Oct. 24, 2023, 4:54 a.m. UTC | #1
Thomas Huth <thuth@redhat.com> writes:

> No need to declare a new variable in the the inner code block
> here, we can re-use the "ret" variable that has been declared
> at the beginning of the function. With this change, the code
> can now be successfully compiled with -Wshadow=local again.
>
> Fixes: a32e781838 ("Mark bdrv_snapshot_fallback() and callers GRAPH_RDLOCK")
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
>  v2: Assign "ret" only in one spot
>
>  block/snapshot.c | 6 ++----
>  1 file changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/block/snapshot.c b/block/snapshot.c
> index 6e16eb803a..55974273ae 100644
> --- a/block/snapshot.c
> +++ b/block/snapshot.c
> @@ -629,7 +629,6 @@ int bdrv_all_goto_snapshot(const char *name,
>      while (iterbdrvs) {
>          BlockDriverState *bs = iterbdrvs->data;
>          AioContext *ctx = bdrv_get_aio_context(bs);
> -        int ret = 0;
>          bool all_snapshots_includes_bs;
>  
>          aio_context_acquire(ctx);
> @@ -637,9 +636,8 @@ int bdrv_all_goto_snapshot(const char *name,
>          all_snapshots_includes_bs = bdrv_all_snapshots_includes_bs(bs);
>          bdrv_graph_rdunlock_main_loop();
>  
> -        if (devices || all_snapshots_includes_bs) {
> -            ret = bdrv_snapshot_goto(bs, name, errp);
> -        }
> +        ret = (devices || all_snapshots_includes_bs) ?
> +              bdrv_snapshot_goto(bs, name, errp) : 0;
>          aio_context_release(ctx);
>          if (ret < 0) {
>              bdrv_graph_rdlock_main_loop();

Better.  Unconditional assignment to @ret right before it's checked is
how we should use @ret.

Reviewed-by: Markus Armbruster <armbru@redhat.com>

And queued.  Thanks!
Markus Armbruster Oct. 24, 2023, 10:37 a.m. UTC | #2
Markus Armbruster <armbru@redhat.com> writes:

> Thomas Huth <thuth@redhat.com> writes:
>
>> No need to declare a new variable in the the inner code block
>> here, we can re-use the "ret" variable that has been declared
>> at the beginning of the function. With this change, the code
>> can now be successfully compiled with -Wshadow=local again.
>>
>> Fixes: a32e781838 ("Mark bdrv_snapshot_fallback() and callers GRAPH_RDLOCK")
>> Signed-off-by: Thomas Huth <thuth@redhat.com>
>> ---
>>  v2: Assign "ret" only in one spot
>>
>>  block/snapshot.c | 6 ++----
>>  1 file changed, 2 insertions(+), 4 deletions(-)
>>
>> diff --git a/block/snapshot.c b/block/snapshot.c
>> index 6e16eb803a..55974273ae 100644
>> --- a/block/snapshot.c
>> +++ b/block/snapshot.c
>> @@ -629,7 +629,6 @@ int bdrv_all_goto_snapshot(const char *name,
>>      while (iterbdrvs) {
>>          BlockDriverState *bs = iterbdrvs->data;
>>          AioContext *ctx = bdrv_get_aio_context(bs);
>> -        int ret = 0;
>>          bool all_snapshots_includes_bs;
>>  
>>          aio_context_acquire(ctx);
>> @@ -637,9 +636,8 @@ int bdrv_all_goto_snapshot(const char *name,
>>          all_snapshots_includes_bs = bdrv_all_snapshots_includes_bs(bs);
>>          bdrv_graph_rdunlock_main_loop();
>>  
>> -        if (devices || all_snapshots_includes_bs) {
>> -            ret = bdrv_snapshot_goto(bs, name, errp);
>> -        }
>> +        ret = (devices || all_snapshots_includes_bs) ?
>> +              bdrv_snapshot_goto(bs, name, errp) : 0;
>>          aio_context_release(ctx);
>>          if (ret < 0) {
>>              bdrv_graph_rdlock_main_loop();
>
> Better.  Unconditional assignment to @ret right before it's checked is
> how we should use @ret.
>
> Reviewed-by: Markus Armbruster <armbru@redhat.com>
>
> And queued.  Thanks!

Mind if I drop the Fixes: tag?  Nothing broken until we enable
-Wshadow=local...
Thomas Huth Oct. 24, 2023, 11:51 a.m. UTC | #3
On 24/10/2023 12.37, Markus Armbruster wrote:
> Markus Armbruster <armbru@redhat.com> writes:
> 
>> Thomas Huth <thuth@redhat.com> writes:
>>
>>> No need to declare a new variable in the the inner code block
>>> here, we can re-use the "ret" variable that has been declared
>>> at the beginning of the function. With this change, the code
>>> can now be successfully compiled with -Wshadow=local again.
>>>
>>> Fixes: a32e781838 ("Mark bdrv_snapshot_fallback() and callers GRAPH_RDLOCK")
>>> Signed-off-by: Thomas Huth <thuth@redhat.com>
>>> ---
>>>   v2: Assign "ret" only in one spot
>>>
>>>   block/snapshot.c | 6 ++----
>>>   1 file changed, 2 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/block/snapshot.c b/block/snapshot.c
>>> index 6e16eb803a..55974273ae 100644
>>> --- a/block/snapshot.c
>>> +++ b/block/snapshot.c
>>> @@ -629,7 +629,6 @@ int bdrv_all_goto_snapshot(const char *name,
>>>       while (iterbdrvs) {
>>>           BlockDriverState *bs = iterbdrvs->data;
>>>           AioContext *ctx = bdrv_get_aio_context(bs);
>>> -        int ret = 0;
>>>           bool all_snapshots_includes_bs;
>>>   
>>>           aio_context_acquire(ctx);
>>> @@ -637,9 +636,8 @@ int bdrv_all_goto_snapshot(const char *name,
>>>           all_snapshots_includes_bs = bdrv_all_snapshots_includes_bs(bs);
>>>           bdrv_graph_rdunlock_main_loop();
>>>   
>>> -        if (devices || all_snapshots_includes_bs) {
>>> -            ret = bdrv_snapshot_goto(bs, name, errp);
>>> -        }
>>> +        ret = (devices || all_snapshots_includes_bs) ?
>>> +              bdrv_snapshot_goto(bs, name, errp) : 0;
>>>           aio_context_release(ctx);
>>>           if (ret < 0) {
>>>               bdrv_graph_rdlock_main_loop();
>>
>> Better.  Unconditional assignment to @ret right before it's checked is
>> how we should use @ret.
>>
>> Reviewed-by: Markus Armbruster <armbru@redhat.com>
>>
>> And queued.  Thanks!
> 
> Mind if I drop the Fixes: tag?  Nothing broken until we enable
> -Wshadow=local...

Fine for me!

  Thomas
Cédric Le Goater Nov. 7, 2023, 7:55 a.m. UTC | #4
On 10/24/23 13:51, Thomas Huth wrote:
> On 24/10/2023 12.37, Markus Armbruster wrote:
>> Markus Armbruster <armbru@redhat.com> writes:
>>
>>> Thomas Huth <thuth@redhat.com> writes:
>>>
>>>> No need to declare a new variable in the the inner code block
>>>> here, we can re-use the "ret" variable that has been declared
>>>> at the beginning of the function. With this change, the code
>>>> can now be successfully compiled with -Wshadow=local again.
>>>>
>>>> Fixes: a32e781838 ("Mark bdrv_snapshot_fallback() and callers GRAPH_RDLOCK")
>>>> Signed-off-by: Thomas Huth <thuth@redhat.com>
>>>> ---
>>>>   v2: Assign "ret" only in one spot
>>>>
>>>>   block/snapshot.c | 6 ++----
>>>>   1 file changed, 2 insertions(+), 4 deletions(-)
>>>>
>>>> diff --git a/block/snapshot.c b/block/snapshot.c
>>>> index 6e16eb803a..55974273ae 100644
>>>> --- a/block/snapshot.c
>>>> +++ b/block/snapshot.c
>>>> @@ -629,7 +629,6 @@ int bdrv_all_goto_snapshot(const char *name,
>>>>       while (iterbdrvs) {
>>>>           BlockDriverState *bs = iterbdrvs->data;
>>>>           AioContext *ctx = bdrv_get_aio_context(bs);
>>>> -        int ret = 0;
>>>>           bool all_snapshots_includes_bs;
>>>>           aio_context_acquire(ctx);
>>>> @@ -637,9 +636,8 @@ int bdrv_all_goto_snapshot(const char *name,
>>>>           all_snapshots_includes_bs = bdrv_all_snapshots_includes_bs(bs);
>>>>           bdrv_graph_rdunlock_main_loop();
>>>> -        if (devices || all_snapshots_includes_bs) {
>>>> -            ret = bdrv_snapshot_goto(bs, name, errp);
>>>> -        }
>>>> +        ret = (devices || all_snapshots_includes_bs) ?
>>>> +              bdrv_snapshot_goto(bs, name, errp) : 0;
>>>>           aio_context_release(ctx);
>>>>           if (ret < 0) {
>>>>               bdrv_graph_rdlock_main_loop();
>>>
>>> Better.  Unconditional assignment to @ret right before it's checked is
>>> how we should use @ret.
>>>
>>> Reviewed-by: Markus Armbruster <armbru@redhat.com>
>>>
>>> And queued.  Thanks!
>>
>> Mind if I drop the Fixes: tag?  Nothing broken until we enable
>> -Wshadow=local...
> 
> Fine for me!

This looks like the last remaining warning. Are we going to activate
-Wshadow=local next ?

Thanks,

C.
diff mbox series

Patch

diff --git a/block/snapshot.c b/block/snapshot.c
index 6e16eb803a..55974273ae 100644
--- a/block/snapshot.c
+++ b/block/snapshot.c
@@ -629,7 +629,6 @@  int bdrv_all_goto_snapshot(const char *name,
     while (iterbdrvs) {
         BlockDriverState *bs = iterbdrvs->data;
         AioContext *ctx = bdrv_get_aio_context(bs);
-        int ret = 0;
         bool all_snapshots_includes_bs;
 
         aio_context_acquire(ctx);
@@ -637,9 +636,8 @@  int bdrv_all_goto_snapshot(const char *name,
         all_snapshots_includes_bs = bdrv_all_snapshots_includes_bs(bs);
         bdrv_graph_rdunlock_main_loop();
 
-        if (devices || all_snapshots_includes_bs) {
-            ret = bdrv_snapshot_goto(bs, name, errp);
-        }
+        ret = (devices || all_snapshots_includes_bs) ?
+              bdrv_snapshot_goto(bs, name, errp) : 0;
         aio_context_release(ctx);
         if (ret < 0) {
             bdrv_graph_rdlock_main_loop();