f2fs: remain nat cache entries for further free nid allocation
[platform/adaptation/renesas_rcar/renesas_kernel.git] / fs / f2fs / node.c
index f7b03ba..0177f94 100644 (file)
@@ -1621,11 +1621,11 @@ flush_now:
                        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);