btrfs: fix potential overflow in cluster_pages_for_defrag on 32bit arch
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Sun, 4 Oct 2020 18:04:26 +0000 (19:04 +0100)
committerDavid Sterba <dsterba@suse.com>
Thu, 5 Nov 2020 12:01:42 +0000 (13:01 +0100)
commita1fbc6750e212c5675a4e48d7f51d44607eb8756
tree93877e687ca82da0c30915921bdccee66f6ebf22
parentd5c8238849e7bae6063dfc16c08ed62cee7ee688
btrfs: fix potential overflow in cluster_pages_for_defrag on 32bit arch

On 32-bit systems, this shift will overflow for files larger than 4GB as
start_index is unsigned long while the calls to btrfs_delalloc_*_space
expect u64.

CC: stable@vger.kernel.org # 4.4+
Fixes: df480633b891 ("btrfs: extent-tree: Switch to new delalloc space reserve and release")
Reviewed-by: Josef Bacik <josef@toxicpanda.com>
Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Reviewed-by: David Sterba <dsterba@suse.com>
[ define the variable instead of repeating the shift ]
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/ioctl.c