summaryrefslogtreecommitdiffstats
path: root/fs/f2fs/node.c
diff options
context:
space:
mode:
authorChao Yu <chao2.yu@samsung.com>2013-12-05 04:15:22 -0500
committerJaegeuk Kim <jaegeuk.kim@samsung.com>2013-12-22 20:18:06 -0500
commitcfb271d485d0ec31eb92b51f4fbe54bf6542e8e6 (patch)
tree1565b575545b152af61ba0a18c2860070bd69348 /fs/f2fs/node.c
parentb9987a277f1ec9dba203d04c3a20d967c01a1fba (diff)
f2fs: add unlikely() macro for compiler optimization
As we know, some of our branch condition will rarely be true. So we could add 'unlikely' to let compiler optimize these code, by this way we could drop unneeded 'jump' assemble code to improve performance. change log: o add *unlikely* as many as possible across the whole source files at once suggested by Jaegeuk Kim. Suggested-by: Jaegeuk Kim <jaegeuk.kim@samsung.com> Signed-off-by: Chao Yu <chao2.yu@samsung.com> Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
Diffstat (limited to 'fs/f2fs/node.c')
-rw-r--r--fs/f2fs/node.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/fs/f2fs/node.c b/fs/f2fs/node.c
index 099f06f84e29..2e41636be476 100644
--- a/fs/f2fs/node.c
+++ b/fs/f2fs/node.c
@@ -94,7 +94,7 @@ static void ra_nat_pages(struct f2fs_sb_info *sbi, int nid)
94 int i; 94 int i;
95 95
96 for (i = 0; i < FREE_NID_PAGES; i++, nid += NAT_ENTRY_PER_BLOCK) { 96 for (i = 0; i < FREE_NID_PAGES; i++, nid += NAT_ENTRY_PER_BLOCK) {
97 if (nid >= nm_i->max_nid) 97 if (unlikely(nid >= nm_i->max_nid))
98 nid = 0; 98 nid = 0;
99 index = current_nat_addr(sbi, nid); 99 index = current_nat_addr(sbi, nid);
100 100
@@ -1160,7 +1160,7 @@ int wait_on_node_pages_writeback(struct f2fs_sb_info *sbi, nid_t ino)
1160 struct page *page = pvec.pages[i]; 1160 struct page *page = pvec.pages[i];
1161 1161
1162 /* until radix tree lookup accepts end_index */ 1162 /* until radix tree lookup accepts end_index */
1163 if (page->index > end) 1163 if (unlikely(page->index > end))
1164 continue; 1164 continue;
1165 1165
1166 if (ino && ino_of_node(page) == ino) { 1166 if (ino && ino_of_node(page) == ino) {
@@ -1190,7 +1190,7 @@ static int f2fs_write_node_page(struct page *page,
1190 block_t new_addr; 1190 block_t new_addr;
1191 struct node_info ni; 1191 struct node_info ni;
1192 1192
1193 if (sbi->por_doing) 1193 if (unlikely(sbi->por_doing))
1194 goto redirty_out; 1194 goto redirty_out;
1195 1195
1196 wait_on_page_writeback(page); 1196 wait_on_page_writeback(page);
@@ -1326,7 +1326,7 @@ static int add_free_nid(struct f2fs_nm_info *nm_i, nid_t nid, bool build)
1326 return -1; 1326 return -1;
1327 1327
1328 /* 0 nid should not be used */ 1328 /* 0 nid should not be used */
1329 if (nid == 0) 1329 if (unlikely(nid == 0))
1330 return 0; 1330 return 0;
1331 1331
1332 if (build) { 1332 if (build) {
@@ -1379,7 +1379,7 @@ static void scan_nat_page(struct f2fs_nm_info *nm_i,
1379 1379
1380 for (; i < NAT_ENTRY_PER_BLOCK; i++, start_nid++) { 1380 for (; i < NAT_ENTRY_PER_BLOCK; i++, start_nid++) {
1381 1381
1382 if (start_nid >= nm_i->max_nid) 1382 if (unlikely(start_nid >= nm_i->max_nid))
1383 break; 1383 break;
1384 1384
1385 blk_addr = le32_to_cpu(nat_blk->entries[i].block_addr); 1385 blk_addr = le32_to_cpu(nat_blk->entries[i].block_addr);
@@ -1413,7 +1413,7 @@ static void build_free_nids(struct f2fs_sb_info *sbi)
1413 f2fs_put_page(page, 1); 1413 f2fs_put_page(page, 1);
1414 1414
1415 nid += (NAT_ENTRY_PER_BLOCK - (nid % NAT_ENTRY_PER_BLOCK)); 1415 nid += (NAT_ENTRY_PER_BLOCK - (nid % NAT_ENTRY_PER_BLOCK));
1416 if (nid >= nm_i->max_nid) 1416 if (unlikely(nid >= nm_i->max_nid))
1417 nid = 0; 1417 nid = 0;
1418 1418
1419 if (i++ == FREE_NID_PAGES) 1419 if (i++ == FREE_NID_PAGES)
@@ -1447,7 +1447,7 @@ bool alloc_nid(struct f2fs_sb_info *sbi, nid_t *nid)
1447 struct free_nid *i = NULL; 1447 struct free_nid *i = NULL;
1448 struct list_head *this; 1448 struct list_head *this;
1449retry: 1449retry:
1450 if (sbi->total_valid_node_count + 1 >= nm_i->max_nid) 1450 if (unlikely(sbi->total_valid_node_count + 1 >= nm_i->max_nid))
1451 return false; 1451 return false;
1452 1452
1453 spin_lock(&nm_i->free_nid_list_lock); 1453 spin_lock(&nm_i->free_nid_list_lock);
@@ -1557,7 +1557,7 @@ int recover_inode_page(struct f2fs_sb_info *sbi, struct page *page)
1557 new_ni = old_ni; 1557 new_ni = old_ni;
1558 new_ni.ino = ino; 1558 new_ni.ino = ino;
1559 1559
1560 if (!inc_valid_node_count(sbi, NULL)) 1560 if (unlikely(!inc_valid_node_count(sbi, NULL)))
1561 WARN_ON(1); 1561 WARN_ON(1);
1562 set_node_addr(sbi, &new_ni, NEW_ADDR); 1562 set_node_addr(sbi, &new_ni, NEW_ADDR);
1563 inc_valid_inode_count(sbi); 1563 inc_valid_inode_count(sbi);