• Josef Bacik's avatar
    btrfs: properly report 0 avail for very full file systems · 58bfe2cc
    Josef Bacik authored
    A user reported some issues with smaller file systems that get very
    full.  While investigating this issue I noticed that df wasn't showing
    100% full, despite having 0 chunk space and having < 1MiB of available
    metadata space.
    
    This turns out to be an overflow issue, we're doing:
    
      total_available_metadata_space - SZ_4M < global_block_rsv_size
    
    to determine if there's not enough space to make metadata allocations,
    which overflows if total_available_metadata_space is < 4M.  Fix this by
    checking to see if our available space is greater than the 4M threshold.
    This makes df properly report 100% usage on the file system.
    
    CC: stable@vger.kernel.org # 4.14+
    Signed-off-by: default avatarJosef Bacik <josef@toxicpanda.com>
    Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    58bfe2cc
super.c 68.8 KB