f2fs: adjust the way of calculating nat block
use a slightly simpler expression to calculate nat block with nid. Signed-off-by: Fan Li <fanofcode.li@samsung.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
This commit is contained in:
parent
ce8679a179
commit
cb7b3c2fe5
1 changed files with 6 additions and 3 deletions
|
@ -200,13 +200,16 @@ static inline pgoff_t current_nat_addr(struct f2fs_sb_info *sbi, nid_t start)
|
||||||
struct f2fs_nm_info *nm_i = NM_I(sbi);
|
struct f2fs_nm_info *nm_i = NM_I(sbi);
|
||||||
pgoff_t block_off;
|
pgoff_t block_off;
|
||||||
pgoff_t block_addr;
|
pgoff_t block_addr;
|
||||||
int seg_off;
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* block_off = segment_off * 512 + off_in_segment
|
||||||
|
* OLD = (segment_off * 512) * 2 + off_in_segment
|
||||||
|
* NEW = 2 * (segment_off * 512 + off_in_segment) - off_in_segment
|
||||||
|
*/
|
||||||
block_off = NAT_BLOCK_OFFSET(start);
|
block_off = NAT_BLOCK_OFFSET(start);
|
||||||
seg_off = block_off >> sbi->log_blocks_per_seg;
|
|
||||||
|
|
||||||
block_addr = (pgoff_t)(nm_i->nat_blkaddr +
|
block_addr = (pgoff_t)(nm_i->nat_blkaddr +
|
||||||
(seg_off << sbi->log_blocks_per_seg << 1) +
|
(block_off << 1) -
|
||||||
(block_off & (sbi->blocks_per_seg - 1)));
|
(block_off & (sbi->blocks_per_seg - 1)));
|
||||||
|
|
||||||
if (f2fs_test_bit(block_off, nm_i->nat_bitmap))
|
if (f2fs_test_bit(block_off, nm_i->nat_bitmap))
|
||||||
|
|
Loading…
Add table
Reference in a new issue