aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFan Li <fanofcode.li@samsung.com>2017-06-02 15:45:42 +0800
committerMoyster <oysterized@gmail.com>2017-07-21 12:37:42 +0200
commit572a1186cb1e12bcce5390da06b7773663a938c0 (patch)
tree9d95f398a89f569872ffea3b505b715f4fa2deff
parentd18701b54b361627a869a1cc5b055c93ff3b23d1 (diff)
f2fs: simplify the way of calulating next nat address
The index of segment which the next nat block is in has only one different bit than the current one, so to get the next nat address, we can simply alter that one bit. Signed-off-by: Fan Li <fanofcode.li@samsung.com> Reviewed-by: Chao Yu <yuchao0@huawei.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
-rw-r--r--fs/f2fs/node.h6
1 files changed, 1 insertions, 5 deletions
diff --git a/fs/f2fs/node.h b/fs/f2fs/node.h
index 558048e33..bb53e9955 100644
--- a/fs/f2fs/node.h
+++ b/fs/f2fs/node.h
@@ -224,11 +224,7 @@ static inline pgoff_t next_nat_addr(struct f2fs_sb_info *sbi,
struct f2fs_nm_info *nm_i = NM_I(sbi);
block_addr -= nm_i->nat_blkaddr;
- if ((block_addr >> sbi->log_blocks_per_seg) % 2)
- block_addr -= sbi->blocks_per_seg;
- else
- block_addr += sbi->blocks_per_seg;
-
+ block_addr ^= 1 << sbi->log_blocks_per_seg;
return block_addr + nm_i->nat_blkaddr;
}