f2fs: remain nat cache entries for further free nid allocation
In the checkpoint flow, the f2fs investigates the total nat cache entries. Previously, if an entry has NULL_ADDR, f2fs drops the entry and adds the obsolete nid to the free nid list. However, this free nid will be reused sooner, resulting in its nat entry miss. In order to avoid this, we don't need to drop the nat cache entry at this moment. Reviewed-by: Namjae Jeon <namjae.jeon@samsung.com> Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
This commit is contained in:
parent
0ff153a2f1
commit
fa37241743
1 changed files with 2 additions and 2 deletions
|
@ -1621,11 +1621,11 @@ void flush_nat_entries(struct f2fs_sb_info *sbi)
|
|||
nid_in_journal(sum, offset) = cpu_to_le32(nid);
|
||||
}
|
||||
|
||||
if (nat_get_blkaddr(ne) == NULL_ADDR) {
|
||||
if (nat_get_blkaddr(ne) == NULL_ADDR &&
|
||||
!add_free_nid(NM_I(sbi), nid)) {
|
||||
write_lock(&nm_i->nat_tree_lock);
|
||||
__del_from_nat_cache(nm_i, ne);
|
||||
write_unlock(&nm_i->nat_tree_lock);
|
||||
add_free_nid(NM_I(sbi), nid);
|
||||
} else {
|
||||
write_lock(&nm_i->nat_tree_lock);
|
||||
__clear_nat_cache_dirty(nm_i, ne);
|
||||
|
|
Loading…
Add table
Reference in a new issue