On Thu, Sep 12, 2019 at 2:31 AM Qu Wenruo <w...@suse.com> wrote:
>
> Commit bc42bda22345 ("btrfs: qgroup: Fix qgroup reserved space underflow by
> only freeing reserved ranges") is freeing wrong range in
> BTRFS_I()->io_failure_tree, which should be BTRFS_I()->io_tree.

I think you meant wrong tree and not wrong range, since the code
doesn't change the range, only the target tree.

Also, for the sake of completeness, and no matter how obvious you
think it is, can you explicitly mention what's the consequence? I
presume it's a qgroup reserved space leak or underflow.

Thanks.

>
> Just fix it.
>
> Reported-by: Josef Bacik <jo...@toxicpanda.com>
> Fixes: bc42bda22345 ("btrfs: qgroup: Fix qgroup reserved space underflow by 
> only freeing reserved ranges")
> Signed-off-by: Qu Wenruo <w...@suse.com>
> ---
>  fs/btrfs/qgroup.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/btrfs/qgroup.c b/fs/btrfs/qgroup.c
> index 2891b57b9e1e..64bdc3e3652d 100644
> --- a/fs/btrfs/qgroup.c
> +++ b/fs/btrfs/qgroup.c
> @@ -3492,7 +3492,7 @@ static int qgroup_free_reserved_data(struct inode 
> *inode,
>                  * EXTENT_QGROUP_RESERVED, we won't double free.
>                  * So not need to rush.
>                  */
> -               ret = 
> clear_record_extent_bits(&BTRFS_I(inode)->io_failure_tree,
> +               ret = clear_record_extent_bits(&BTRFS_I(inode)->io_tree,
>                                 free_start, free_start + free_len - 1,
>                                 EXTENT_QGROUP_RESERVED, &changeset);
>                 if (ret < 0)
> --
> 2.23.0
>


-- 
Filipe David Manana,

“Whether you think you can, or you think you can't — you're right.”

Reply via email to