]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 11 Mar 2023 12:50:26 +0000 (13:50 +0100)
[ Upstream commit 8c0ed062ce27f6b7f0a568cb241e2b4dd2d9e6a6 ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
fs/f2fs/file.c

index 63d468b1a9b8276f3cba6ae9839632d561fd27f5..cd1c6ed89d5ef737b2ebb5adf7b37d9e90141b29 100644 (file)
@@ -619,7 +619,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;