2020-11-15 06:46:05

by Kaixu Xia

[permalink] [raw]
Subject: [PATCH] btrfs: remove the useless value assignment in block_rsv_release_bytes

From: Kaixu Xia <[email protected]>

The variable qgroup_to_release is overwritten by the following if/else
statement before it is used, so this assignment is useless. Remove it.

Reported-by: Tosk Robot <[email protected]>
Signed-off-by: Kaixu Xia <[email protected]>
---
fs/btrfs/block-rsv.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/fs/btrfs/block-rsv.c b/fs/btrfs/block-rsv.c
index bc920afe23bf..8638327069b7 100644
--- a/fs/btrfs/block-rsv.c
+++ b/fs/btrfs/block-rsv.c
@@ -109,10 +109,8 @@ static u64 block_rsv_release_bytes(struct btrfs_fs_info *fs_info,
u64 ret;

spin_lock(&block_rsv->lock);
- if (num_bytes == (u64)-1) {
+ if (num_bytes == (u64)-1)
num_bytes = block_rsv->size;
- qgroup_to_release = block_rsv->qgroup_rsv_size;
- }
block_rsv->size -= num_bytes;
if (block_rsv->reserved >= block_rsv->size) {
num_bytes = block_rsv->reserved - block_rsv->size;
--
2.20.0


2020-11-16 15:20:22

by David Sterba

[permalink] [raw]
Subject: Re: [PATCH] btrfs: remove the useless value assignment in block_rsv_release_bytes

On Sun, Nov 15, 2020 at 02:39:23PM +0800, [email protected] wrote:
> From: Kaixu Xia <[email protected]>
>
> The variable qgroup_to_release is overwritten by the following if/else
> statement before it is used, so this assignment is useless. Remove it.

Again this lacks explanation why removing it is correct.

2020-11-17 03:28:25

by Kaixu Xia

[permalink] [raw]
Subject: Re: [PATCH] btrfs: remove the useless value assignment in block_rsv_release_bytes



On 2020/11/16 23:15, David Sterba wrote:
> On Sun, Nov 15, 2020 at 02:39:23PM +0800, [email protected] wrote:
>> From: Kaixu Xia <[email protected]>
>>
>> The variable qgroup_to_release is overwritten by the following if/else
>> statement before it is used, so this assignment is useless. Remove it.
>
> Again this lacks explanation why removing it is correct.
>
Actually this assignment is redundant because the variable qgroup_to_release
has been overwritten before it is used. The logic like this,

static u64 block_rsv_release_bytes(...)
{
...
if (num_bytes == (u64)-1) {
num_bytes = block_rsv->size;
qgroup_to_release = block_rsv->qgroup_rsv_size;
}

//qgroup_to_release isn't used

if (block_rsv->qgroup_rsv_reserved >= block_rsv->qgroup_rsv_size) {
qgroup_to_release = block_rsv->qgroup_rsv_reserved -
block_rsv->qgroup_rsv_size;
block_rsv->qgroup_rsv_reserved = block_rsv->qgroup_rsv_size;
} else {
qgroup_to_release = 0;
}//qgroup_to_release is overwritten
...
}

Thanks,
Kaixu

--
kaixuxia

2020-11-23 18:03:27

by David Sterba

[permalink] [raw]
Subject: Re: [PATCH] btrfs: remove the useless value assignment in block_rsv_release_bytes

On Tue, Nov 17, 2020 at 11:17:17AM +0800, kaixuxia wrote:
>
>
> On 2020/11/16 23:15, David Sterba wrote:
> > On Sun, Nov 15, 2020 at 02:39:23PM +0800, [email protected] wrote:
> >> From: Kaixu Xia <[email protected]>
> >>
> >> The variable qgroup_to_release is overwritten by the following if/else
> >> statement before it is used, so this assignment is useless. Remove it.
> >
> > Again this lacks explanation why removing it is correct.
> >
> Actually this assignment is redundant because the variable qgroup_to_release
> has been overwritten before it is used. The logic like this,

That's obvious and I did not mean that. Have you checked in which commit
the variable became unused and why? It's possible that it was indeed
just an oversight, but if not it could point to a bug.