• Qu Wenruo's avatar
    btrfs: Enhance super validation check · 319e4d06
    Qu Wenruo authored
    Enhance btrfs_check_super_valid() function by the following points:
    1) Restrict sector/node size check
       Not the old max/min valid check, but also check if it's a power of 2.
       So some bogus number like 12K node size won't pass now.
    
    2) Super flag check
       For now, there is still some inconsistency between kernel and
       btrfs-progs super flags.
       And considering btrfs-progs may add new flags for super block, this
       check will only output warning.
    
    3) Better root alignment check
       Now root bytenr is checked against sector size.
    
    4) Move some check into btrfs_check_super_valid().
       Like node size vs leaf size check, and PAGESIZE vs sectorsize check.
       And magic number check.
    Reported-by: default avatarVegard Nossum <vegard.nossum@oracle.com>
    Signed-off-by: default avatarQu Wenruo <quwenruo@cn.fujitsu.com>
    Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
    Signed-off-by: default avatarChris Mason <clm@fb.com>
    319e4d06
disk-io.c 121 KB