• Filipe Manana's avatar
    btrfs: do not BUG_ON after failure to migrate space during truncation · 6822b3f7
    Filipe Manana authored
    During truncation we reserve 2 metadata units when starting a transaction
    (reserved space goes to fs_info->trans_block_rsv) and then attempt to
    migrate 1 unit (min_size bytes) from fs_info->trans_block_rsv into the
    local block reserve. If we ever fail we trigger a BUG_ON(), which should
    never happen, because we reserved 2 units. However if we happen to fail
    for some reason, we don't need to be so dire and hit a BUG_ON(), we can
    just error out the truncation and, since this is highly unexpected,
    surround the error check with WARN_ON(), to get an informative stack
    trace and tag the branh as 'unlikely'. Also make the 'min_size' variable
    const, since it's not supposed to ever change and any accidental change
    could possibly make the space migration not so unlikely to fail.
    Reviewed-by: default avatarQu Wenruo <wqu@suse.com>
    Signed-off-by: default avatarFilipe Manana <fdmanana@suse.com>
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    6822b3f7
inode.c 315 KB