diff options
author | Changman Lee <cm224.lee@samsung.com> | 2014-11-24 22:44:23 -0500 |
---|---|---|
committer | Jaegeuk Kim <jaegeuk@kernel.org> | 2014-11-25 20:26:34 -0500 |
commit | 20d047c87621090152c89f9581f78a69b02e0e35 (patch) | |
tree | 48621d39317b6b0ccf73370e97355e220fd235d1 /fs/f2fs | |
parent | 5f72739583a29bfaa57448ec2c9b122995d0ae4f (diff) |
f2fs: check dirty_nat_cnt before flushing nat entries in journal
It's meaningless to check dirty_nat_cnt after re-dirtying nat entries in
journal. And although there are rooms for dirty nat entires if dirty_nat_cnt
is zero, it's also meaningless to check __has_cursum_space.
Signed-off-by: Changman Lee <cm224.lee@samsung.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Diffstat (limited to 'fs/f2fs')
-rw-r--r-- | fs/f2fs/node.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/fs/f2fs/node.c b/fs/f2fs/node.c index 36656add1c9b..4af3feef2884 100644 --- a/fs/f2fs/node.c +++ b/fs/f2fs/node.c | |||
@@ -171,7 +171,7 @@ retry: | |||
171 | static void __clear_nat_cache_dirty(struct f2fs_nm_info *nm_i, | 171 | static void __clear_nat_cache_dirty(struct f2fs_nm_info *nm_i, |
172 | struct nat_entry *ne) | 172 | struct nat_entry *ne) |
173 | { | 173 | { |
174 | nid_t set = ne->ni.nid / NAT_ENTRY_PER_BLOCK; | 174 | nid_t set = NAT_BLOCK_OFFSET(ne->ni.nid); |
175 | struct nat_entry_set *head; | 175 | struct nat_entry_set *head; |
176 | 176 | ||
177 | head = radix_tree_lookup(&nm_i->nat_set_root, set); | 177 | head = radix_tree_lookup(&nm_i->nat_set_root, set); |
@@ -1945,6 +1945,8 @@ void flush_nat_entries(struct f2fs_sb_info *sbi) | |||
1945 | nid_t set_idx = 0; | 1945 | nid_t set_idx = 0; |
1946 | LIST_HEAD(sets); | 1946 | LIST_HEAD(sets); |
1947 | 1947 | ||
1948 | if (!nm_i->dirty_nat_cnt) | ||
1949 | return; | ||
1948 | /* | 1950 | /* |
1949 | * if there are no enough space in journal to store dirty nat | 1951 | * if there are no enough space in journal to store dirty nat |
1950 | * entries, remove all entries from journal and merge them | 1952 | * entries, remove all entries from journal and merge them |
@@ -1953,9 +1955,6 @@ void flush_nat_entries(struct f2fs_sb_info *sbi) | |||
1953 | if (!__has_cursum_space(sum, nm_i->dirty_nat_cnt, NAT_JOURNAL)) | 1955 | if (!__has_cursum_space(sum, nm_i->dirty_nat_cnt, NAT_JOURNAL)) |
1954 | remove_nats_in_journal(sbi); | 1956 | remove_nats_in_journal(sbi); |
1955 | 1957 | ||
1956 | if (!nm_i->dirty_nat_cnt) | ||
1957 | return; | ||
1958 | |||
1959 | while ((found = __gang_lookup_nat_set(nm_i, | 1958 | while ((found = __gang_lookup_nat_set(nm_i, |
1960 | set_idx, NATVEC_SIZE, setvec))) { | 1959 | set_idx, NATVEC_SIZE, setvec))) { |
1961 | unsigned idx; | 1960 | unsigned idx; |