]> git.hungrycats.org Git - linux/commit
Btrfs: do not create empty block group if we have allocated data
authorLiu Bo <bo.li.liu@oracle.com>
Tue, 15 Dec 2015 02:29:32 +0000 (18:29 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 8 Jun 2016 01:18:54 +0000 (18:18 -0700)
commitaaef5d1d931b7f5ab452773b2df495a37321185e
tree486efedb98a3d77728f6e8f87cadf8cf35ec680e
parent8dbf3ff15f8a72a3c32928f8129aa07344404612
Btrfs: do not create empty block group if we have allocated data

commit cf25ce518e8ef9d59b292e51193bed2b023a32da upstream.

Now we force to create empty block group to keep data profile alive,
however, in the below example, we eventually get an empty block group
while we're trying to get more space for other types (metadata/system),

- Before,
block group "A": size=2G, used=1.2G
block group "B": size=2G, used=512M

- After "btrfs balance start -dusage=50 mount_point",
block group "A": size=2G, used=(1.2+0.5)G
block group "C": size=2G, used=0

Since there is no data in block group C, it won't be deleted
automatically and we have to get the unused 2G until the next mount.

Balance itself just moves data and doesn't remove data, so it's safe
to not create such a empty block group if we already have data
 allocated in other block groups.

Signed-off-by: Liu Bo <bo.li.liu@oracle.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/btrfs/volumes.c