• David Woodhouse's avatar
    Btrfs: Remove broken sanity check from btrfs_rmap_block() · 3acada49
    David Woodhouse authored
    It was never actually doing anything anyway (see the loop condition),
    and it would be difficult to make it work for RAID[56].
    
    Even if it was actually working, it's checking for the wrong thing
    anyway. Instead of checking whether we list a block which _doesn't_ land
    at the relevant physical location, it should be checking that we _have_
    listed all the logical blocks which refer to the required physical
    location on all devices.
    
    This function is only called from remove_sb_from_cache() to ensure that
    we reserve the logical blocks which would reside at the same physical
    location as the superblock copies. So listing more blocks than we need
    is actually OK.
    
    With RAID[56] we're going to throw away an entire stripe for each block
    we have to ignore, so we _are_ going to list blocks other than the
    ones which actually contain the superblock.
    Signed-off-by: default avatarDavid Woodhouse <David.Woodhouse@intel.com>
    Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>
    3acada49
volumes.c 84.2 KB