linux-f2fs-devel.lists.sourceforge.net archive mirror
 help / color / mirror / Atom feed
* [PATCH 3/3] f2fs: use macro for code readability
@ 2014-08-20 10:38 Chao Yu
  2014-08-21 20:50 ` Jaegeuk Kim
  0 siblings, 1 reply; 3+ messages in thread
From: Chao Yu @ 2014-08-20 10:38 UTC (permalink / raw)
  To: Jaegeuk Kim; +Cc: linux-kernel, linux-f2fs-devel

This patch introduces DEF_NIDS_PER_INODE/GET_ORPHAN_BLOCKS/F2FS_CP_PARK_NUM macro
instead of numbers in code for readability.

Signed-off-by: Chao Yu <chao2.yu@samsung.com>
---
 fs/f2fs/checkpoint.c    | 21 ++++++++++-----------
 include/linux/f2fs_fs.h | 13 ++++++++++---
 2 files changed, 20 insertions(+), 14 deletions(-)

diff --git a/fs/f2fs/checkpoint.c b/fs/f2fs/checkpoint.c
index 6aeed5b..b0b6079 100644
--- a/fs/f2fs/checkpoint.c
+++ b/fs/f2fs/checkpoint.c
@@ -446,8 +446,8 @@ static void write_orphan_inodes(struct f2fs_sb_info *sbi, block_t start_blk)
 	struct f2fs_orphan_block *orphan_blk = NULL;
 	unsigned int nentries = 0;
 	unsigned short index;
-	unsigned short orphan_blocks = (unsigned short)((sbi->n_orphans +
-		(F2FS_ORPHANS_PER_BLOCK - 1)) / F2FS_ORPHANS_PER_BLOCK);
+	unsigned short orphan_blocks =
+			(unsigned short)GET_ORPHAN_BLOCKS(sbi->n_orphans);
 	struct page *page = NULL;
 	struct ino_entry *orphan = NULL;
 
@@ -825,7 +825,7 @@ static void do_checkpoint(struct f2fs_sb_info *sbi, bool is_umount)
 	ckpt->elapsed_time = cpu_to_le64(get_mtime(sbi));
 	ckpt->valid_block_count = cpu_to_le64(valid_user_blocks(sbi));
 	ckpt->free_segment_count = cpu_to_le32(free_segments(sbi));
-	for (i = 0; i < 3; i++) {
+	for (i = 0; i < NR_CURSEG_NODE_TYPE; i++) {
 		ckpt->cur_node_segno[i] =
 			cpu_to_le32(curseg_segno(sbi, i + CURSEG_HOT_NODE));
 		ckpt->cur_node_blkoff[i] =
@@ -833,7 +833,7 @@ static void do_checkpoint(struct f2fs_sb_info *sbi, bool is_umount)
 		ckpt->alloc_type[i + CURSEG_HOT_NODE] =
 				curseg_alloc_type(sbi, i + CURSEG_HOT_NODE);
 	}
-	for (i = 0; i < 3; i++) {
+	for (i = 0; i < NR_CURSEG_DATA_TYPE; i++) {
 		ckpt->cur_data_segno[i] =
 			cpu_to_le32(curseg_segno(sbi, i + CURSEG_HOT_DATA));
 		ckpt->cur_data_blkoff[i] =
@@ -848,24 +848,23 @@ static void do_checkpoint(struct f2fs_sb_info *sbi, bool is_umount)
 
 	/* 2 cp  + n data seg summary + orphan inode blocks */
 	data_sum_blocks = npages_for_summary_flush(sbi);
-	if (data_sum_blocks < 3)
+	if (data_sum_blocks < NR_CURSEG_DATA_TYPE)
 		set_ckpt_flags(ckpt, CP_COMPACT_SUM_FLAG);
 	else
 		clear_ckpt_flags(ckpt, CP_COMPACT_SUM_FLAG);
 
-	orphan_blocks = (sbi->n_orphans + F2FS_ORPHANS_PER_BLOCK - 1)
-					/ F2FS_ORPHANS_PER_BLOCK;
+	orphan_blocks = GET_ORPHAN_BLOCKS(sbi->n_orphans);
 	ckpt->cp_pack_start_sum = cpu_to_le32(1 + cp_payload_blks +
 			orphan_blocks);
 
 	if (is_umount) {
 		set_ckpt_flags(ckpt, CP_UMOUNT_FLAG);
-		ckpt->cp_pack_total_block_count = cpu_to_le32(2 +
+		ckpt->cp_pack_total_block_count = cpu_to_le32(F2FS_CP_PARK_NUM +
 				cp_payload_blks + data_sum_blocks +
 				orphan_blocks + NR_CURSEG_NODE_TYPE);
 	} else {
 		clear_ckpt_flags(ckpt, CP_UMOUNT_FLAG);
-		ckpt->cp_pack_total_block_count = cpu_to_le32(2 +
+		ckpt->cp_pack_total_block_count = cpu_to_le32(F2FS_CP_PARK_NUM +
 				cp_payload_blks + data_sum_blocks +
 				orphan_blocks);
 	}
@@ -999,8 +998,8 @@ void init_ino_entry_info(struct f2fs_sb_info *sbi)
 	 * for cp pack we can have max 1020*504 orphan entries
 	 */
 	sbi->n_orphans = 0;
-	sbi->max_orphans = (sbi->blocks_per_seg - 2 - NR_CURSEG_TYPE)
-				* F2FS_ORPHANS_PER_BLOCK;
+	sbi->max_orphans = (sbi->blocks_per_seg - F2FS_CP_PARK_NUM -
+			NR_CURSEG_TYPE) * F2FS_ORPHANS_PER_BLOCK;
 }
 
 int __init create_checkpoint_caches(void)
diff --git a/include/linux/f2fs_fs.h b/include/linux/f2fs_fs.h
index 0ed77f3..f3cca5b 100644
--- a/include/linux/f2fs_fs.h
+++ b/include/linux/f2fs_fs.h
@@ -90,6 +90,8 @@ struct f2fs_super_block {
 #define CP_ORPHAN_PRESENT_FLAG	0x00000002
 #define CP_UMOUNT_FLAG		0x00000001
 
+#define F2FS_CP_PARK_NUM	2	/* # of checkpoint packs */
+
 struct f2fs_checkpoint {
 	__le64 checkpoint_ver;		/* checkpoint block version number */
 	__le64 user_block_count;	/* # of user blocks */
@@ -126,6 +128,9 @@ struct f2fs_checkpoint {
  */
 #define F2FS_ORPHANS_PER_BLOCK	1020
 
+#define GET_ORPHAN_BLOCKS(n)	((n + F2FS_ORPHANS_PER_BLOCK - 1) / \
+					F2FS_ORPHANS_PER_BLOCK)
+
 struct f2fs_orphan_block {
 	__le32 ino[F2FS_ORPHANS_PER_BLOCK];	/* inode numbers */
 	__le32 reserved;	/* reserved */
@@ -147,6 +152,7 @@ struct f2fs_extent {
 #define F2FS_NAME_LEN		255
 #define F2FS_INLINE_XATTR_ADDRS	50	/* 200 bytes for inline xattrs */
 #define DEF_ADDRS_PER_INODE	923	/* Address Pointers in an Inode */
+#define DEF_NIDS_PER_INODE	5	/* Node IDs in an Inode */
 #define ADDRS_PER_INODE(fi)	addrs_per_inode(fi)
 #define ADDRS_PER_BLOCK		1018	/* Address Pointers in a Direct Block */
 #define NIDS_PER_BLOCK		1018	/* Node IDs in an Indirect Block */
@@ -166,8 +172,9 @@ struct f2fs_extent {
 #define MAX_INLINE_DATA		(sizeof(__le32) * (DEF_ADDRS_PER_INODE - \
 						F2FS_INLINE_XATTR_ADDRS - 1))
 
-#define INLINE_DATA_OFFSET	(PAGE_CACHE_SIZE - sizeof(struct node_footer) \
-			- sizeof(__le32) * (DEF_ADDRS_PER_INODE + 5 - 1))
+#define INLINE_DATA_OFFSET	(PAGE_CACHE_SIZE - sizeof(struct node_footer) -\
+				sizeof(__le32) * (DEF_ADDRS_PER_INODE + \
+				DEF_NIDS_PER_INODE - 1))
 
 struct f2fs_inode {
 	__le16 i_mode;			/* file mode */
@@ -197,7 +204,7 @@ struct f2fs_inode {
 
 	__le32 i_addr[DEF_ADDRS_PER_INODE];	/* Pointers to data blocks */
 
-	__le32 i_nid[5];		/* direct(2), indirect(2),
+	__le32 i_nid[DEF_NIDS_PER_INODE];	/* direct(2), indirect(2),
 						double_indirect(1) node id */
 } __packed;
 
-- 
2.0.1.474.g72c7794



------------------------------------------------------------------------------
Slashdot TV.  
Video for Nerds.  Stuff that matters.
http://tv.slashdot.org/

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH 3/3] f2fs: use macro for code readability
  2014-08-20 10:38 [PATCH 3/3] f2fs: use macro for code readability Chao Yu
@ 2014-08-21 20:50 ` Jaegeuk Kim
  2014-08-22  8:13   ` Chao Yu
  0 siblings, 1 reply; 3+ messages in thread
From: Jaegeuk Kim @ 2014-08-21 20:50 UTC (permalink / raw)
  To: Chao Yu; +Cc: linux-kernel, linux-f2fs-devel

On Wed, Aug 20, 2014 at 06:38:40PM +0800, Chao Yu wrote:
> This patch introduces DEF_NIDS_PER_INODE/GET_ORPHAN_BLOCKS/F2FS_CP_PARK_NUM macro

F2FS_CP_PACKS?

> instead of numbers in code for readability.
> 
> Signed-off-by: Chao Yu <chao2.yu@samsung.com>
> ---
>  fs/f2fs/checkpoint.c    | 21 ++++++++++-----------
>  include/linux/f2fs_fs.h | 13 ++++++++++---
>  2 files changed, 20 insertions(+), 14 deletions(-)
> 
> diff --git a/fs/f2fs/checkpoint.c b/fs/f2fs/checkpoint.c
> index 6aeed5b..b0b6079 100644
> --- a/fs/f2fs/checkpoint.c
> +++ b/fs/f2fs/checkpoint.c
> @@ -446,8 +446,8 @@ static void write_orphan_inodes(struct f2fs_sb_info *sbi, block_t start_blk)
>  	struct f2fs_orphan_block *orphan_blk = NULL;
>  	unsigned int nentries = 0;
>  	unsigned short index;
> -	unsigned short orphan_blocks = (unsigned short)((sbi->n_orphans +
> -		(F2FS_ORPHANS_PER_BLOCK - 1)) / F2FS_ORPHANS_PER_BLOCK);
> +	unsigned short orphan_blocks =
> +			(unsigned short)GET_ORPHAN_BLOCKS(sbi->n_orphans);
>  	struct page *page = NULL;
>  	struct ino_entry *orphan = NULL;
>  
> @@ -825,7 +825,7 @@ static void do_checkpoint(struct f2fs_sb_info *sbi, bool is_umount)
>  	ckpt->elapsed_time = cpu_to_le64(get_mtime(sbi));
>  	ckpt->valid_block_count = cpu_to_le64(valid_user_blocks(sbi));
>  	ckpt->free_segment_count = cpu_to_le32(free_segments(sbi));
> -	for (i = 0; i < 3; i++) {
> +	for (i = 0; i < NR_CURSEG_NODE_TYPE; i++) {
>  		ckpt->cur_node_segno[i] =
>  			cpu_to_le32(curseg_segno(sbi, i + CURSEG_HOT_NODE));
>  		ckpt->cur_node_blkoff[i] =
> @@ -833,7 +833,7 @@ static void do_checkpoint(struct f2fs_sb_info *sbi, bool is_umount)
>  		ckpt->alloc_type[i + CURSEG_HOT_NODE] =
>  				curseg_alloc_type(sbi, i + CURSEG_HOT_NODE);
>  	}
> -	for (i = 0; i < 3; i++) {
> +	for (i = 0; i < NR_CURSEG_DATA_TYPE; i++) {
>  		ckpt->cur_data_segno[i] =
>  			cpu_to_le32(curseg_segno(sbi, i + CURSEG_HOT_DATA));
>  		ckpt->cur_data_blkoff[i] =
> @@ -848,24 +848,23 @@ static void do_checkpoint(struct f2fs_sb_info *sbi, bool is_umount)
>  
>  	/* 2 cp  + n data seg summary + orphan inode blocks */
>  	data_sum_blocks = npages_for_summary_flush(sbi);
> -	if (data_sum_blocks < 3)
> +	if (data_sum_blocks < NR_CURSEG_DATA_TYPE)
>  		set_ckpt_flags(ckpt, CP_COMPACT_SUM_FLAG);
>  	else
>  		clear_ckpt_flags(ckpt, CP_COMPACT_SUM_FLAG);
>  
> -	orphan_blocks = (sbi->n_orphans + F2FS_ORPHANS_PER_BLOCK - 1)
> -					/ F2FS_ORPHANS_PER_BLOCK;
> +	orphan_blocks = GET_ORPHAN_BLOCKS(sbi->n_orphans);
>  	ckpt->cp_pack_start_sum = cpu_to_le32(1 + cp_payload_blks +
>  			orphan_blocks);
>  
>  	if (is_umount) {
>  		set_ckpt_flags(ckpt, CP_UMOUNT_FLAG);
> -		ckpt->cp_pack_total_block_count = cpu_to_le32(2 +
> +		ckpt->cp_pack_total_block_count = cpu_to_le32(F2FS_CP_PARK_NUM +
>  				cp_payload_blks + data_sum_blocks +
>  				orphan_blocks + NR_CURSEG_NODE_TYPE);
>  	} else {
>  		clear_ckpt_flags(ckpt, CP_UMOUNT_FLAG);
> -		ckpt->cp_pack_total_block_count = cpu_to_le32(2 +
> +		ckpt->cp_pack_total_block_count = cpu_to_le32(F2FS_CP_PARK_NUM +
>  				cp_payload_blks + data_sum_blocks +
>  				orphan_blocks);
>  	}
> @@ -999,8 +998,8 @@ void init_ino_entry_info(struct f2fs_sb_info *sbi)
>  	 * for cp pack we can have max 1020*504 orphan entries
>  	 */
>  	sbi->n_orphans = 0;
> -	sbi->max_orphans = (sbi->blocks_per_seg - 2 - NR_CURSEG_TYPE)
> -				* F2FS_ORPHANS_PER_BLOCK;
> +	sbi->max_orphans = (sbi->blocks_per_seg - F2FS_CP_PARK_NUM -
> +			NR_CURSEG_TYPE) * F2FS_ORPHANS_PER_BLOCK;
>  }
>  
>  int __init create_checkpoint_caches(void)
> diff --git a/include/linux/f2fs_fs.h b/include/linux/f2fs_fs.h
> index 0ed77f3..f3cca5b 100644
> --- a/include/linux/f2fs_fs.h
> +++ b/include/linux/f2fs_fs.h
> @@ -90,6 +90,8 @@ struct f2fs_super_block {
>  #define CP_ORPHAN_PRESENT_FLAG	0x00000002
>  #define CP_UMOUNT_FLAG		0x00000001
>  
> +#define F2FS_CP_PARK_NUM	2	/* # of checkpoint packs */
> +
>  struct f2fs_checkpoint {
>  	__le64 checkpoint_ver;		/* checkpoint block version number */
>  	__le64 user_block_count;	/* # of user blocks */
> @@ -126,6 +128,9 @@ struct f2fs_checkpoint {
>   */
>  #define F2FS_ORPHANS_PER_BLOCK	1020
>  
> +#define GET_ORPHAN_BLOCKS(n)	((n + F2FS_ORPHANS_PER_BLOCK - 1) / \
> +					F2FS_ORPHANS_PER_BLOCK)
> +
>  struct f2fs_orphan_block {
>  	__le32 ino[F2FS_ORPHANS_PER_BLOCK];	/* inode numbers */
>  	__le32 reserved;	/* reserved */
> @@ -147,6 +152,7 @@ struct f2fs_extent {
>  #define F2FS_NAME_LEN		255
>  #define F2FS_INLINE_XATTR_ADDRS	50	/* 200 bytes for inline xattrs */
>  #define DEF_ADDRS_PER_INODE	923	/* Address Pointers in an Inode */
> +#define DEF_NIDS_PER_INODE	5	/* Node IDs in an Inode */
>  #define ADDRS_PER_INODE(fi)	addrs_per_inode(fi)
>  #define ADDRS_PER_BLOCK		1018	/* Address Pointers in a Direct Block */
>  #define NIDS_PER_BLOCK		1018	/* Node IDs in an Indirect Block */
> @@ -166,8 +172,9 @@ struct f2fs_extent {
>  #define MAX_INLINE_DATA		(sizeof(__le32) * (DEF_ADDRS_PER_INODE - \
>  						F2FS_INLINE_XATTR_ADDRS - 1))
>  
> -#define INLINE_DATA_OFFSET	(PAGE_CACHE_SIZE - sizeof(struct node_footer) \
> -			- sizeof(__le32) * (DEF_ADDRS_PER_INODE + 5 - 1))
> +#define INLINE_DATA_OFFSET	(PAGE_CACHE_SIZE - sizeof(struct node_footer) -\
> +				sizeof(__le32) * (DEF_ADDRS_PER_INODE + \
> +				DEF_NIDS_PER_INODE - 1))
>  
>  struct f2fs_inode {
>  	__le16 i_mode;			/* file mode */
> @@ -197,7 +204,7 @@ struct f2fs_inode {
>  
>  	__le32 i_addr[DEF_ADDRS_PER_INODE];	/* Pointers to data blocks */
>  
> -	__le32 i_nid[5];		/* direct(2), indirect(2),
> +	__le32 i_nid[DEF_NIDS_PER_INODE];	/* direct(2), indirect(2),
>  						double_indirect(1) node id */
>  } __packed;
>  
> -- 
> 2.0.1.474.g72c7794
> 
> 
> 
> ------------------------------------------------------------------------------
> Slashdot TV.  
> Video for Nerds.  Stuff that matters.
> http://tv.slashdot.org/
> _______________________________________________
> Linux-f2fs-devel mailing list
> Linux-f2fs-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

------------------------------------------------------------------------------
Slashdot TV.  
Video for Nerds.  Stuff that matters.
http://tv.slashdot.org/

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH 3/3] f2fs: use macro for code readability
  2014-08-21 20:50 ` Jaegeuk Kim
@ 2014-08-22  8:13   ` Chao Yu
  0 siblings, 0 replies; 3+ messages in thread
From: Chao Yu @ 2014-08-22  8:13 UTC (permalink / raw)
  To: 'Jaegeuk Kim'; +Cc: linux-kernel, linux-f2fs-devel

> -----Original Message-----
> From: Jaegeuk Kim [mailto:jaegeuk@kernel.org]
> Sent: Friday, August 22, 2014 4:50 AM
> To: Chao Yu
> Cc: linux-kernel@vger.kernel.org; linux-f2fs-devel@lists.sourceforge.net
> Subject: Re: [f2fs-dev] [PATCH 3/3] f2fs: use macro for code readability
> 
> On Wed, Aug 20, 2014 at 06:38:40PM +0800, Chao Yu wrote:
> > This patch introduces DEF_NIDS_PER_INODE/GET_ORPHAN_BLOCKS/F2FS_CP_PARK_NUM macro
> 
> F2FS_CP_PACKS?

That's my mistake, will fix.

Thanks for the review.

> 
> > instead of numbers in code for readability.
> >
> > Signed-off-by: Chao Yu <chao2.yu@samsung.com>
> > ---
> >  fs/f2fs/checkpoint.c    | 21 ++++++++++-----------
> >  include/linux/f2fs_fs.h | 13 ++++++++++---
> >  2 files changed, 20 insertions(+), 14 deletions(-)
> >
> > diff --git a/fs/f2fs/checkpoint.c b/fs/f2fs/checkpoint.c
> > index 6aeed5b..b0b6079 100644
> > --- a/fs/f2fs/checkpoint.c
> > +++ b/fs/f2fs/checkpoint.c
> > @@ -446,8 +446,8 @@ static void write_orphan_inodes(struct f2fs_sb_info *sbi, block_t
> start_blk)
> >  	struct f2fs_orphan_block *orphan_blk = NULL;
> >  	unsigned int nentries = 0;
> >  	unsigned short index;
> > -	unsigned short orphan_blocks = (unsigned short)((sbi->n_orphans +
> > -		(F2FS_ORPHANS_PER_BLOCK - 1)) / F2FS_ORPHANS_PER_BLOCK);
> > +	unsigned short orphan_blocks =
> > +			(unsigned short)GET_ORPHAN_BLOCKS(sbi->n_orphans);
> >  	struct page *page = NULL;
> >  	struct ino_entry *orphan = NULL;
> >
> > @@ -825,7 +825,7 @@ static void do_checkpoint(struct f2fs_sb_info *sbi, bool is_umount)
> >  	ckpt->elapsed_time = cpu_to_le64(get_mtime(sbi));
> >  	ckpt->valid_block_count = cpu_to_le64(valid_user_blocks(sbi));
> >  	ckpt->free_segment_count = cpu_to_le32(free_segments(sbi));
> > -	for (i = 0; i < 3; i++) {
> > +	for (i = 0; i < NR_CURSEG_NODE_TYPE; i++) {
> >  		ckpt->cur_node_segno[i] =
> >  			cpu_to_le32(curseg_segno(sbi, i + CURSEG_HOT_NODE));
> >  		ckpt->cur_node_blkoff[i] =
> > @@ -833,7 +833,7 @@ static void do_checkpoint(struct f2fs_sb_info *sbi, bool is_umount)
> >  		ckpt->alloc_type[i + CURSEG_HOT_NODE] =
> >  				curseg_alloc_type(sbi, i + CURSEG_HOT_NODE);
> >  	}
> > -	for (i = 0; i < 3; i++) {
> > +	for (i = 0; i < NR_CURSEG_DATA_TYPE; i++) {
> >  		ckpt->cur_data_segno[i] =
> >  			cpu_to_le32(curseg_segno(sbi, i + CURSEG_HOT_DATA));
> >  		ckpt->cur_data_blkoff[i] =
> > @@ -848,24 +848,23 @@ static void do_checkpoint(struct f2fs_sb_info *sbi, bool is_umount)
> >
> >  	/* 2 cp  + n data seg summary + orphan inode blocks */
> >  	data_sum_blocks = npages_for_summary_flush(sbi);
> > -	if (data_sum_blocks < 3)
> > +	if (data_sum_blocks < NR_CURSEG_DATA_TYPE)
> >  		set_ckpt_flags(ckpt, CP_COMPACT_SUM_FLAG);
> >  	else
> >  		clear_ckpt_flags(ckpt, CP_COMPACT_SUM_FLAG);
> >
> > -	orphan_blocks = (sbi->n_orphans + F2FS_ORPHANS_PER_BLOCK - 1)
> > -					/ F2FS_ORPHANS_PER_BLOCK;
> > +	orphan_blocks = GET_ORPHAN_BLOCKS(sbi->n_orphans);
> >  	ckpt->cp_pack_start_sum = cpu_to_le32(1 + cp_payload_blks +
> >  			orphan_blocks);
> >
> >  	if (is_umount) {
> >  		set_ckpt_flags(ckpt, CP_UMOUNT_FLAG);
> > -		ckpt->cp_pack_total_block_count = cpu_to_le32(2 +
> > +		ckpt->cp_pack_total_block_count = cpu_to_le32(F2FS_CP_PARK_NUM +
> >  				cp_payload_blks + data_sum_blocks +
> >  				orphan_blocks + NR_CURSEG_NODE_TYPE);
> >  	} else {
> >  		clear_ckpt_flags(ckpt, CP_UMOUNT_FLAG);
> > -		ckpt->cp_pack_total_block_count = cpu_to_le32(2 +
> > +		ckpt->cp_pack_total_block_count = cpu_to_le32(F2FS_CP_PARK_NUM +
> >  				cp_payload_blks + data_sum_blocks +
> >  				orphan_blocks);
> >  	}
> > @@ -999,8 +998,8 @@ void init_ino_entry_info(struct f2fs_sb_info *sbi)
> >  	 * for cp pack we can have max 1020*504 orphan entries
> >  	 */
> >  	sbi->n_orphans = 0;
> > -	sbi->max_orphans = (sbi->blocks_per_seg - 2 - NR_CURSEG_TYPE)
> > -				* F2FS_ORPHANS_PER_BLOCK;
> > +	sbi->max_orphans = (sbi->blocks_per_seg - F2FS_CP_PARK_NUM -
> > +			NR_CURSEG_TYPE) * F2FS_ORPHANS_PER_BLOCK;
> >  }
> >
> >  int __init create_checkpoint_caches(void)
> > diff --git a/include/linux/f2fs_fs.h b/include/linux/f2fs_fs.h
> > index 0ed77f3..f3cca5b 100644
> > --- a/include/linux/f2fs_fs.h
> > +++ b/include/linux/f2fs_fs.h
> > @@ -90,6 +90,8 @@ struct f2fs_super_block {
> >  #define CP_ORPHAN_PRESENT_FLAG	0x00000002
> >  #define CP_UMOUNT_FLAG		0x00000001
> >
> > +#define F2FS_CP_PARK_NUM	2	/* # of checkpoint packs */
> > +
> >  struct f2fs_checkpoint {
> >  	__le64 checkpoint_ver;		/* checkpoint block version number */
> >  	__le64 user_block_count;	/* # of user blocks */
> > @@ -126,6 +128,9 @@ struct f2fs_checkpoint {
> >   */
> >  #define F2FS_ORPHANS_PER_BLOCK	1020
> >
> > +#define GET_ORPHAN_BLOCKS(n)	((n + F2FS_ORPHANS_PER_BLOCK - 1) / \
> > +					F2FS_ORPHANS_PER_BLOCK)
> > +
> >  struct f2fs_orphan_block {
> >  	__le32 ino[F2FS_ORPHANS_PER_BLOCK];	/* inode numbers */
> >  	__le32 reserved;	/* reserved */
> > @@ -147,6 +152,7 @@ struct f2fs_extent {
> >  #define F2FS_NAME_LEN		255
> >  #define F2FS_INLINE_XATTR_ADDRS	50	/* 200 bytes for inline xattrs */
> >  #define DEF_ADDRS_PER_INODE	923	/* Address Pointers in an Inode */
> > +#define DEF_NIDS_PER_INODE	5	/* Node IDs in an Inode */
> >  #define ADDRS_PER_INODE(fi)	addrs_per_inode(fi)
> >  #define ADDRS_PER_BLOCK		1018	/* Address Pointers in a Direct Block */
> >  #define NIDS_PER_BLOCK		1018	/* Node IDs in an Indirect Block */
> > @@ -166,8 +172,9 @@ struct f2fs_extent {
> >  #define MAX_INLINE_DATA		(sizeof(__le32) * (DEF_ADDRS_PER_INODE - \
> >  						F2FS_INLINE_XATTR_ADDRS - 1))
> >
> > -#define INLINE_DATA_OFFSET	(PAGE_CACHE_SIZE - sizeof(struct node_footer) \
> > -			- sizeof(__le32) * (DEF_ADDRS_PER_INODE + 5 - 1))
> > +#define INLINE_DATA_OFFSET	(PAGE_CACHE_SIZE - sizeof(struct node_footer) -\
> > +				sizeof(__le32) * (DEF_ADDRS_PER_INODE + \
> > +				DEF_NIDS_PER_INODE - 1))
> >
> >  struct f2fs_inode {
> >  	__le16 i_mode;			/* file mode */
> > @@ -197,7 +204,7 @@ struct f2fs_inode {
> >
> >  	__le32 i_addr[DEF_ADDRS_PER_INODE];	/* Pointers to data blocks */
> >
> > -	__le32 i_nid[5];		/* direct(2), indirect(2),
> > +	__le32 i_nid[DEF_NIDS_PER_INODE];	/* direct(2), indirect(2),
> >  						double_indirect(1) node id */
> >  } __packed;
> >
> > --
> > 2.0.1.474.g72c7794
> >
> >
> >
> > ------------------------------------------------------------------------------
> > Slashdot TV.
> > Video for Nerds.  Stuff that matters.
> > http://tv.slashdot.org/
> > _______________________________________________
> > Linux-f2fs-devel mailing list
> > Linux-f2fs-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel


------------------------------------------------------------------------------
Slashdot TV.  
Video for Nerds.  Stuff that matters.
http://tv.slashdot.org/

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2014-08-22  8:14 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-08-20 10:38 [PATCH 3/3] f2fs: use macro for code readability Chao Yu
2014-08-21 20:50 ` Jaegeuk Kim
2014-08-22  8:13   ` Chao Yu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).