btrfs: qgroup: fix initialization of auto inherit array
authorDan Carpenter <dan.carpenter@linaro.org>
Sat, 4 May 2024 11:38:41 +0000 (14:38 +0300)
committerDavid Sterba <dsterba@suse.com>
Tue, 7 May 2024 19:31:11 +0000 (21:31 +0200)
The "i++" was accidentally left out so it just sets qgids[0] over and
over.

This can lead to unexpected problems, as the groups[1:] would be all 0,
leading to later find_qgroup_rb() unable to find a qgroup and cause
snapshot creation failure.

Fixes: 5343cd9364ea ("btrfs: qgroup: simple quota auto hierarchy for nested subvolumes")
CC: stable@vger.kernel.org # 6.7+
Reviewed-by: Qu Wenruo <wqu@suse.com>
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/qgroup.c

index 1768fc6f232feea870bc04b13585d8e5844be3bb..eb28141d5c37f7e832951e8054010c47ac3329d3 100644 (file)
@@ -3123,7 +3123,7 @@ static int qgroup_auto_inherit(struct btrfs_fs_info *fs_info,
        qgids = res->qgroups;
 
        list_for_each_entry(qg_list, &inode_qg->groups, next_group)
-               qgids[i] = qg_list->group->qgroupid;
+               qgids[i++] = qg_list->group->qgroupid;
 
        *inherit = res;
        return 0;