f2fs: fix to update age extent correctly during truncation
authorChao Yu <chao@kernel.org>
Tue, 31 Jan 2023 14:47:00 +0000 (22:47 +0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Thu, 2 Feb 2023 21:37:17 +0000 (13:37 -0800)
nr_free may be less than len, we should update age extent cache
w/ range [fofs, len] rather than [fofs, nr_free].

Fixes: 71644dff4811 ("f2fs: add block_age-based extent cache")
Signed-off-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/file.c

index f05148a9dc99aac87be6e5ff7ddf05d825ef475d..a83117325b87350359f0823ba9af292e766c21cf 100644 (file)
@@ -617,7 +617,7 @@ void f2fs_truncate_data_blocks_range(struct dnode_of_data *dn, int count)
                fofs = f2fs_start_bidx_of_node(ofs_of_node(dn->node_page),
                                                        dn->inode) + ofs;
                f2fs_update_read_extent_cache_range(dn, fofs, 0, len);
-               f2fs_update_age_extent_cache_range(dn, fofs, nr_free);
+               f2fs_update_age_extent_cache_range(dn, fofs, len);
                dec_valid_block_count(sbi, dn->inode, nr_free);
        }
        dn->ofs_in_node = ofs;