f2fs: drop duplicate radix tree lookup of nat_entry_set
The nat entry is listed from the set list for freeing, it's duplicate to do radix tree lookup again. Signed-off-by: Kinglong Mee <kinglongmee@gmail.com> [Jaegeuk Kim: remove unnecessary f2fs_bug_on] Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
This commit is contained in:
parent
20fda56b01
commit
0b28b71e29
fs/f2fs
|
@ -177,18 +177,12 @@ static void __set_nat_cache_dirty(struct f2fs_nm_info *nm_i,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __clear_nat_cache_dirty(struct f2fs_nm_info *nm_i,
|
static void __clear_nat_cache_dirty(struct f2fs_nm_info *nm_i,
|
||||||
struct nat_entry *ne)
|
struct nat_entry_set *set, struct nat_entry *ne)
|
||||||
{
|
{
|
||||||
nid_t set = NAT_BLOCK_OFFSET(ne->ni.nid);
|
list_move_tail(&ne->list, &nm_i->nat_entries);
|
||||||
struct nat_entry_set *head;
|
set_nat_flag(ne, IS_DIRTY, false);
|
||||||
|
set->entry_cnt--;
|
||||||
head = radix_tree_lookup(&nm_i->nat_set_root, set);
|
nm_i->dirty_nat_cnt--;
|
||||||
if (head) {
|
|
||||||
list_move_tail(&ne->list, &nm_i->nat_entries);
|
|
||||||
set_nat_flag(ne, IS_DIRTY, false);
|
|
||||||
head->entry_cnt--;
|
|
||||||
nm_i->dirty_nat_cnt--;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static unsigned int __gang_lookup_nat_set(struct f2fs_nm_info *nm_i,
|
static unsigned int __gang_lookup_nat_set(struct f2fs_nm_info *nm_i,
|
||||||
|
@ -2407,7 +2401,7 @@ static void __flush_nat_entry_set(struct f2fs_sb_info *sbi,
|
||||||
}
|
}
|
||||||
raw_nat_from_node_info(raw_ne, &ne->ni);
|
raw_nat_from_node_info(raw_ne, &ne->ni);
|
||||||
nat_reset_flag(ne);
|
nat_reset_flag(ne);
|
||||||
__clear_nat_cache_dirty(NM_I(sbi), ne);
|
__clear_nat_cache_dirty(NM_I(sbi), set, ne);
|
||||||
if (nat_get_blkaddr(ne) == NULL_ADDR) {
|
if (nat_get_blkaddr(ne) == NULL_ADDR) {
|
||||||
add_free_nid(sbi, nid, false);
|
add_free_nid(sbi, nid, false);
|
||||||
spin_lock(&NM_I(sbi)->nid_list_lock);
|
spin_lock(&NM_I(sbi)->nid_list_lock);
|
||||||
|
|
Loading…
Reference in New Issue