• Josef Bacik's avatar
    btrfs: reset RO counter on block group if we fail to relocate · 74944c87
    Josef Bacik authored
    With the automatic block group reclaim code we will preemptively try to
    mark the block group RO before we start the relocation.  We do this to
    make sure we should actually try to relocate the block group.
    
    However if we hit an error during the actual relocation we won't clean
    up our RO counter and the block group will remain RO.  This was observed
    internally with file systems reporting less space available from df when
    we had failed background relocations.
    
    Fix this by doing the dec_ro in the error case.
    
    Fixes: 18bb8bbf ("btrfs: zoned: automatically reclaim zones")
    CC: stable@vger.kernel.org # 5.15+
    Reviewed-by: default avatarBoris Burkov <boris@bur.io>
    Signed-off-by: default avatarJosef Bacik <josef@toxicpanda.com>
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    74944c87
block-group.c 124 KB