f2fs: introduce help macro ADDRS_PER_PAGE()
Subsystems (2)
PATCH 1/1 f2fs: introduce help macro ADDRS_PER_PAGE()
Introduce help macro ADDRS_PER_PAGE() to get the number of address pointers in direct node or inode.
Signed-off-by Chao Yu <[email protected]>
--- fs/f2fs/data.c | 6 ++---- fs/f2fs/file.c | 5 +---- fs/f2fs/recovery.c | 5 +---- include/linux/f2fs_fs.h | 3 +++ 4 files changed, 7 insertions(+), 12 deletions(-)
fs/f2fs/data.c +2 -4
@@ -652,8 +652,7 @@ static int get_data_block(struct inode *inode, sector_t iblock, goto put_out; } - end_offset =IS_INODE (dn.node_page) ? -ADDRS_PER_INODE (F2FS_I (inode)) :ADDRS_PER_BLOCK ; + end_offset =ADDRS_PER_PAGE (dn.node_page,F2FS_I (inode)); bh_result->b_size = (((size_t )1 ) << blkbits); dn.ofs_in_node++; pgofs++;
@@ -675,8 +674,7 @@ get_next:if (dn.data_blkaddr ==NEW_ADDR ) goto put_out; - end_offset =IS_INODE (dn.node_page) ? -ADDRS_PER_INODE (F2FS_I (inode)) :ADDRS_PER_BLOCK ; + end_offset =ADDRS_PER_PAGE (dn.node_page,F2FS_I (inode)); }if (maxblocks > (bh_result->b_size >> blkbits)) {
fs/f2fs/file.c +1 -4
@@ -288,10 +288,7 @@ int truncate_blocks(struct inode *inode, u64 from)return err; } -if (IS_INODE (dn.node_page)) - count =ADDRS_PER_INODE (F2FS_I (inode)); -else - count =ADDRS_PER_BLOCK ; + count =ADDRS_PER_PAGE (dn.node_page,F2FS_I (inode)); count -= dn.ofs_in_node;f2fs_bug_on (count <0 );
fs/f2fs/recovery.c +1 -4
@@ -301,10 +301,7 @@ static int do_recover_data(struct f2fs_sb_info *sbi, struct inode *inode, goto out; start =start_bidx_of_node (ofs_of_node (page), fi); -if (IS_INODE (page)) - end = start +ADDRS_PER_INODE (fi); -else - end = start +ADDRS_PER_BLOCK ; + end = start +ADDRS_PER_PAGE (page, fi);f2fs_lock_op (sbi);
include/linux/f2fs_fs.h +3 -0
@@ -146,6 +146,9 @@ struct f2fs_extent {#define ADDRS_PER_BLOCK 1018/* Address Pointers in a Direct Block */ #define NIDS_PER_BLOCK 1018/* Node IDs in an Indirect Block */ +#define ADDRS_PER_PAGE (page, fi) \ + (IS_INODE(page) ? ADDRS_PER_INODE(fi) : ADDRS_PER_BLOCK) +#define NODE_DIR1_BLOCK (DEF_ADDRS_PER_INODE + 1)#define NODE_DIR2_BLOCK (DEF_ADDRS_PER_INODE + 2)#define NODE_IND1_BLOCK (DEF_ADDRS_PER_INODE + 3)
Signature · 10 lines
1.7.9.5 ------------------------------------------------------------------------------ Start Your Social Network Today - Download eXo Platform Build your Enterprise Intranet with eXo Platform Software Java Based Open Source Intranet - Social, Extensible, Cloud Ready Get Started Now And Turn Your Intranet Into A Collaboration Platform http://p.sf.net/sfu/ExoPlatform