• Liu Bo's avatar
    Btrfs: do not create empty block group if we have allocated data · aaef5d1d
    Liu Bo authored
    commit cf25ce51 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: default avatarLiu Bo <bo.li.liu@oracle.com>
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    aaef5d1d
volumes.c 183 KB