btrfs: subpage: make compress_file_range() compatible
authorQu Wenruo <wqu@suse.com>
Mon, 27 Sep 2021 07:21:59 +0000 (15:21 +0800)
committerDavid Sterba <dsterba@suse.com>
Tue, 26 Oct 2021 17:08:04 +0000 (19:08 +0200)
In function compress_file_range(), when the compression is finished, the
function just rounds up @total_in to PAGE_SIZE.  This is fine for
regular sectorsize == PAGE_SIZE case, but not for subpage.

Just change the ALIGN(, PAGE_SIZE) to round_up(, sectorsize) so that
both regular sectorsize and subpage sectorsize will be happy.

Signed-off-by: Qu Wenruo <wqu@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/inode.c

index aaeb219..dd91f4e 100644 (file)
@@ -758,7 +758,7 @@ cont:
                 * win, compare the page count read with the blocks on disk,
                 * compression must free at least one sector size
                 */
-               total_in = ALIGN(total_in, PAGE_SIZE);
+               total_in = round_up(total_in, fs_info->sectorsize);
                if (total_compressed + blocksize <= total_in) {
                        compressed_extents++;