UPSTREAM: f2fs: fix to update age extent correctly during truncation
nr_free may be less than len, we should update age extent cache
w/ range [fofs, len] rather than [fofs, nr_free].
Fixes: dfcfcc6d16 ("f2fs: add block_age-based extent cache")
Signed-off-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
(cherry picked from commit 8c0ed062ce27f6b7f0a568cb241e2b4dd2d9e6a6)
Change-Id: I0a4546f84fd75db2f13857e4922520ab5885e845
Signed-off-by: zhaoyuenan <amktiao030215@gmail.com>
This commit is contained in:
@@ -644,7 +644,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),
|
fofs = f2fs_start_bidx_of_node(ofs_of_node(dn->node_page),
|
||||||
dn->inode) + ofs;
|
dn->inode) + ofs;
|
||||||
f2fs_update_read_extent_cache_range(dn, fofs, 0, len);
|
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);
|
dec_valid_block_count(sbi, dn->inode, nr_free);
|
||||||
}
|
}
|
||||||
dn->ofs_in_node = ofs;
|
dn->ofs_in_node = ofs;
|
||||||
|
|||||||
Reference in New Issue
Block a user