]> git.baikalelectronics.ru Git - kernel.git/commit
btrfs: respect the max size in the header when activating swap file
authorFilipe Manana <fdmanana@suse.com>
Thu, 16 Dec 2021 15:00:32 +0000 (15:00 +0000)
committerDavid Sterba <dsterba@suse.com>
Fri, 7 Jan 2022 13:18:27 +0000 (14:18 +0100)
commitea0812857c236969a4b178f04d7dfb37c56abf18
tree6898ca61ec49ae8d15fc8d48fa781d36c4a8fea8
parentaaa71b5c65275735b3eac4082d45c52cfcee732d
btrfs: respect the max size in the header when activating swap file

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 93df3f13db382d ("mm/swap: consider max pages in
iomap_swapfile_add_extent").

Fixes: 5a4f56d05eabb7 ("Btrfs: support swap files")
CC: stable@vger.kernel.org # 5.4+
Reviewed-and-tested-by: Josef Bacik <josef@toxicpanda.com
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/inode.c