aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/f2fs/node.c7
-rw-r--r--fs/f2fs/node.h10
2 files changed, 9 insertions, 8 deletions
diff --git a/fs/f2fs/node.c b/fs/f2fs/node.c
index d452185c5eaa..a070b1457d70 100644
--- a/fs/f2fs/node.c
+++ b/fs/f2fs/node.c
@@ -128,6 +128,7 @@ static struct nat_entry *grab_nat_entry(struct f2fs_nm_info *nm_i, nid_t nid)
128 } 128 }
129 memset(new, 0, sizeof(struct nat_entry)); 129 memset(new, 0, sizeof(struct nat_entry));
130 nat_set_nid(new, nid); 130 nat_set_nid(new, nid);
131 new->checkpointed = true;
131 list_add_tail(&new->list, &nm_i->nat_entries); 132 list_add_tail(&new->list, &nm_i->nat_entries);
132 nm_i->nat_cnt++; 133 nm_i->nat_cnt++;
133 return new; 134 return new;
@@ -149,7 +150,6 @@ retry:
149 nat_set_blkaddr(e, le32_to_cpu(ne->block_addr)); 150 nat_set_blkaddr(e, le32_to_cpu(ne->block_addr));
150 nat_set_ino(e, le32_to_cpu(ne->ino)); 151 nat_set_ino(e, le32_to_cpu(ne->ino));
151 nat_set_version(e, ne->version); 152 nat_set_version(e, ne->version);
152 e->checkpointed = true;
153 } 153 }
154 write_unlock(&nm_i->nat_tree_lock); 154 write_unlock(&nm_i->nat_tree_lock);
155} 155}
@@ -169,7 +169,6 @@ retry:
169 goto retry; 169 goto retry;
170 } 170 }
171 e->ni = *ni; 171 e->ni = *ni;
172 e->checkpointed = true;
173 f2fs_bug_on(ni->blk_addr == NEW_ADDR); 172 f2fs_bug_on(ni->blk_addr == NEW_ADDR);
174 } else if (new_blkaddr == NEW_ADDR) { 173 } else if (new_blkaddr == NEW_ADDR) {
175 /* 174 /*
@@ -181,9 +180,6 @@ retry:
181 f2fs_bug_on(ni->blk_addr != NULL_ADDR); 180 f2fs_bug_on(ni->blk_addr != NULL_ADDR);
182 } 181 }
183 182
184 if (new_blkaddr == NEW_ADDR)
185 e->checkpointed = false;
186
187 /* sanity check */ 183 /* sanity check */
188 f2fs_bug_on(nat_get_blkaddr(e) != ni->blk_addr); 184 f2fs_bug_on(nat_get_blkaddr(e) != ni->blk_addr);
189 f2fs_bug_on(nat_get_blkaddr(e) == NULL_ADDR && 185 f2fs_bug_on(nat_get_blkaddr(e) == NULL_ADDR &&
@@ -1787,7 +1783,6 @@ flush_now:
1787 } else { 1783 } else {
1788 write_lock(&nm_i->nat_tree_lock); 1784 write_lock(&nm_i->nat_tree_lock);
1789 __clear_nat_cache_dirty(nm_i, ne); 1785 __clear_nat_cache_dirty(nm_i, ne);
1790 ne->checkpointed = true;
1791 write_unlock(&nm_i->nat_tree_lock); 1786 write_unlock(&nm_i->nat_tree_lock);
1792 } 1787 }
1793 } 1788 }
diff --git a/fs/f2fs/node.h b/fs/f2fs/node.h
index c4c79885c993..4dea719766ef 100644
--- a/fs/f2fs/node.h
+++ b/fs/f2fs/node.h
@@ -58,9 +58,15 @@ struct nat_entry {
58#define nat_set_version(nat, v) (nat->ni.version = v) 58#define nat_set_version(nat, v) (nat->ni.version = v)
59 59
60#define __set_nat_cache_dirty(nm_i, ne) \ 60#define __set_nat_cache_dirty(nm_i, ne) \
61 list_move_tail(&ne->list, &nm_i->dirty_nat_entries); 61 do { \
62 ne->checkpointed = false; \
63 list_move_tail(&ne->list, &nm_i->dirty_nat_entries); \
64 } while (0);
62#define __clear_nat_cache_dirty(nm_i, ne) \ 65#define __clear_nat_cache_dirty(nm_i, ne) \
63 list_move_tail(&ne->list, &nm_i->nat_entries); 66 do { \
67 ne->checkpointed = true; \
68 list_move_tail(&ne->list, &nm_i->nat_entries); \
69 } while (0);
64#define inc_node_version(version) (++version) 70#define inc_node_version(version) (++version)
65 71
66static inline void node_info_from_raw_nat(struct node_info *ni, 72static inline void node_info_from_raw_nat(struct node_info *ni,