f2fs: drop duplicate radix tree lookup of nat_entry_set
authorKinglong Mee <kinglongmee@gmail.com>
Tue, 28 Feb 2017 13:34:47 +0000 (21:34 +0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Wed, 22 Mar 2017 02:34:20 +0000 (22:34 -0400)
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>
fs/f2fs/node.c

index 481aa8dc79f46f4c156cf67cca665e8160e36e6a..11df8ab32478bdc80eff709c0a03b326f58694a2 100644 (file)
@@ -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,
-                                               struct nat_entry *ne)
+               struct nat_entry_set *set, struct nat_entry *ne)
 {
-       nid_t set = NAT_BLOCK_OFFSET(ne->ni.nid);
-       struct nat_entry_set *head;
-
-       head = radix_tree_lookup(&nm_i->nat_set_root, set);
-       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--;
-       }
+       list_move_tail(&ne->list, &nm_i->nat_entries);
+       set_nat_flag(ne, IS_DIRTY, false);
+       set->entry_cnt--;
+       nm_i->dirty_nat_cnt--;
 }
 
 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);
                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) {
                        add_free_nid(sbi, nid, false);
                        spin_lock(&NM_I(sbi)->nid_list_lock);