f2fs: fix wrong block count instead of bytes
authorJaegeuk Kim <jaegeuk@kernel.org>
Tue, 24 Nov 2020 23:09:07 +0000 (15:09 -0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Thu, 3 Dec 2020 06:00:22 +0000 (22:00 -0800)
We should convert cur_lblock, a block count, to bytes for len.

Fixes: af4b6b8edf6a ("f2fs: introduce check_swap_activate_fast()")
Reviewed-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/data.c

index a84e5bc..e49c14c 100644 (file)
@@ -3893,7 +3893,7 @@ static int check_swap_activate_fast(struct swap_info_struct *sis,
        sector_t highest_pblock = 0;
        int nr_extents = 0;
        unsigned long nr_pblocks;
-       unsigned long len;
+       u64 len;
        int ret;
 
        /*
@@ -3911,7 +3911,7 @@ static int check_swap_activate_fast(struct swap_info_struct *sis,
                cond_resched();
 
                memset(&map_bh, 0, sizeof(struct buffer_head));
-               map_bh.b_size = len - cur_lblock;
+               map_bh.b_size = len - blks_to_bytes(inode, cur_lblock);
 
                ret = get_data_block(inode, cur_lblock, &map_bh, 0,
                                        F2FS_GET_BLOCK_FIEMAP, &next_pgofs);