diff options
-rw-r--r-- | fs/f2fs/node.c | 7 | ||||
-rw-r--r-- | fs/f2fs/node.h | 10 |
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 | ||
66 | static inline void node_info_from_raw_nat(struct node_info *ni, | 72 | static inline void node_info_from_raw_nat(struct node_info *ni, |