• Filipe Manana's avatar
    btrfs: respect the max size in the header when activating swap file · c2f82263
    Filipe Manana authored
    If we extended the size of a swapfile after its header was created (by the
    mkswap utility) and then try to activate it, we will map the entire file
    when activating the swap file, instead of limiting to the max size defined
    in the swap file's header.
    
    Currently test case generic/643 from fstests fails because we do not
    respect that size limit defined in the swap file's header.
    
    So fix this by not mapping file ranges beyond the max size defined in the
    swap header.
    
    This is the same type of bug that iomap used to have, and was fixed in
    commit 36ca7943 ("mm/swap: consider max pages in
    iomap_swapfile_add_extent").
    
    Fixes: ed46ff3d ("Btrfs: support swap files")
    CC: stable@vger.kernel.org # 5.4+
    Reviewed-and-tested-by: Josef Bacik <josef@toxicpanda.com
    Signed-off-by: default avatarFilipe Manana <fdmanana@suse.com>
    Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    c2f82263
inode.c 300 KB