linux-ext4.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/4] ext4: fold two if statements into one
@ 2011-10-26  7:11 Yongqiang Yang
  2011-10-26  7:11 ` [PATCH 2/4] ext4: move variable to its scope Yongqiang Yang
                   ` (3 more replies)
  0 siblings, 4 replies; 8+ messages in thread
From: Yongqiang Yang @ 2011-10-26  7:11 UTC (permalink / raw)
  To: tytso; +Cc: linux-ext4, Yongqiang Yang

Signed-off-by: Yongqiang Yang <xiaoqiangnk@gmail.com>
---
 fs/ext4/extents.c |   23 +++++++++++------------
 1 files changed, 11 insertions(+), 12 deletions(-)

diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c
index f1ed90b..f887023 100644
--- a/fs/ext4/extents.c
+++ b/fs/ext4/extents.c
@@ -4082,18 +4082,17 @@ got_allocated_blocks:
 		 */
 		reserved_clusters = get_reserved_cluster_alloc(inode,
 						map->m_lblk, allocated);
-		if (map->m_flags & EXT4_MAP_FROM_CLUSTER) {
-			if (reserved_clusters) {
-				/*
-				 * We have clusters reserved for this range.
-				 * But since we are not doing actual allocation
-				 * and are simply using blocks from previously
-				 * allocated cluster, we should release the
-				 * reservation and not claim quota.
-				 */
-				ext4_da_update_reserve_space(inode,
-						reserved_clusters, 0);
-			}
+		if ((map->m_flags & EXT4_MAP_FROM_CLUSTER) &&
+		    reserved_clusters) {
+			/*
+			 * We have clusters reserved for this range.
+			 * But since we are not doing actual allocation
+			 * and are simply using blocks from previously
+			 * allocated cluster, we should release the
+			 * reservation and not claim quota.
+			 */
+			ext4_da_update_reserve_space(inode,
+					reserved_clusters, 0);
 		} else {
 			BUG_ON(allocated_clusters < reserved_clusters);
 			/* We will claim quota for all newly allocated blocks.*/
-- 
1.7.5.1


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

* [PATCH 2/4] ext4: move variable to its scope
  2011-10-26  7:11 [PATCH 1/4] ext4: fold two if statements into one Yongqiang Yang
@ 2011-10-26  7:11 ` Yongqiang Yang
  2011-10-29 13:24   ` Ted Ts'o
  2011-10-26  7:11 ` [PATCH 3/4] ext4: let AGGRESSIVE_TEST brace code only related to itself Yongqiang Yang
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 8+ messages in thread
From: Yongqiang Yang @ 2011-10-26  7:11 UTC (permalink / raw)
  To: tytso; +Cc: linux-ext4, Yongqiang Yang

Signed-off-by: Yongqiang Yang <xiaoqiangnk@gmail.com>
---
 fs/ext4/extents.c |   15 ++++++++-------
 1 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c
index f887023..8b09a47 100644
--- a/fs/ext4/extents.c
+++ b/fs/ext4/extents.c
@@ -117,10 +117,9 @@ static ext4_fsblk_t ext4_ext_find_goal(struct inode *inode,
 			      struct ext4_ext_path *path,
 			      ext4_lblk_t block)
 {
-	int depth;
-
 	if (path) {
 		struct ext4_extent *ex;
+		int depth;
 		depth = path->p_depth;
 
 		/*
@@ -247,7 +246,7 @@ static inline int ext4_ext_space_root_idx(struct inode *inode, int check)
 int ext4_ext_calc_metadata_amount(struct inode *inode, ext4_lblk_t lblock)
 {
 	struct ext4_inode_info *ei = EXT4_I(inode);
-	int idxs, num = 0;
+	int idxs;
 
 	idxs = ((inode->i_sb->s_blocksize - sizeof(struct ext4_extent_header))
 		/ sizeof(struct ext4_extent_idx));
@@ -262,6 +261,7 @@ int ext4_ext_calc_metadata_amount(struct inode *inode, ext4_lblk_t lblock)
 	 */
 	if (ei->i_da_metadata_calc_len &&
 	    ei->i_da_metadata_calc_last_lblock+1 == lblock) {
+		int num = 0;
 		if ((ei->i_da_metadata_calc_len % idxs) == 0)
 			num++;
 		if ((ei->i_da_metadata_calc_len % (idxs*idxs)) == 0)
@@ -324,8 +324,6 @@ static int ext4_valid_extent_entries(struct inode *inode,
 				struct ext4_extent_header *eh,
 				int depth)
 {
-	struct ext4_extent *ext;
-	struct ext4_extent_idx *ext_idx;
 	unsigned short entries;
 	if (eh->eh_entries == 0)
 		return 1;
@@ -334,6 +332,7 @@ static int ext4_valid_extent_entries(struct inode *inode,
 
 	if (depth == 0) {
 		/* leaf entries */
+		struct ext4_extent *ext;
 		ext = EXT_FIRST_EXTENT(eh);
 		while (entries) {
 			if (!ext4_valid_extent(inode, ext))
@@ -342,6 +341,7 @@ static int ext4_valid_extent_entries(struct inode *inode,
 			entries--;
 		}
 	} else {
+		struct ext4_extent_idx *ext_idx;
 		ext_idx = EXT_FIRST_INDEX(eh);
 		while (entries) {
 			if (!ext4_valid_extent_idx(inode, ext_idx))
@@ -3720,13 +3720,12 @@ int ext4_ext_map_blocks(handle_t *handle, struct inode *inode,
 	ext4_fsblk_t newblock = 0;
 	int free_on_err = 0, err = 0, depth, ret;
 	unsigned int allocated = 0, offset = 0;
-	unsigned int allocated_clusters = 0, reserved_clusters = 0;
+	unsigned int allocated_clusters = 0;
 	unsigned int punched_out = 0;
 	unsigned int result = 0;
 	struct ext4_allocation_request ar;
 	ext4_io_end_t *io = EXT4_I(inode)->cur_aio_dio;
 	ext4_lblk_t cluster_offset;
-	struct ext4_map_blocks punch_map;
 
 	ext_debug("blocks %u/%u requested for inode %lu\n",
 		  map->m_lblk, map->m_len, inode->i_ino);
@@ -3802,6 +3801,7 @@ int ext4_ext_map_blocks(handle_t *handle, struct inode *inode,
 
 		/* if found extent covers block, simply return it */
 		if (in_range(map->m_lblk, ee_block, ee_len)) {
+			struct ext4_map_blocks punch_map;
 			ext4_fsblk_t partial_cluster = 0;
 
 			newblock = map->m_lblk - ee_block + ee_start;
@@ -4077,6 +4077,7 @@ got_allocated_blocks:
 	 * block allocation which had been deferred till now.
 	 */
 	if (flags & EXT4_GET_BLOCKS_DELALLOC_RESERVE) {
+		unsigned int reserved_clusters = 0;
 		/*
 		 * Check how many clusters we had reserved this allocted range.
 		 */
-- 
1.7.5.1


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

* [PATCH 3/4] ext4: let AGGRESSIVE_TEST brace code only related to itself
  2011-10-26  7:11 [PATCH 1/4] ext4: fold two if statements into one Yongqiang Yang
  2011-10-26  7:11 ` [PATCH 2/4] ext4: move variable to its scope Yongqiang Yang
@ 2011-10-26  7:11 ` Yongqiang Yang
  2011-10-29 13:30   ` Ted Ts'o
  2011-10-26  7:11 ` [PATCH 4/4] ext4: trace punch_hole correctly in ext4_ext_map_blocks Yongqiang Yang
  2011-10-29 13:14 ` [PATCH 1/4] ext4: fold two if statements into one Ted Ts'o
  3 siblings, 1 reply; 8+ messages in thread
From: Yongqiang Yang @ 2011-10-26  7:11 UTC (permalink / raw)
  To: tytso; +Cc: linux-ext4, Yongqiang Yang

Signed-off-by: Yongqiang Yang <xiaoqiangnk@gmail.com>
---
 fs/ext4/extents.c |   16 ++++++++--------
 1 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c
index 8b09a47..49b4e28 100644
--- a/fs/ext4/extents.c
+++ b/fs/ext4/extents.c
@@ -182,12 +182,12 @@ static inline int ext4_ext_space_block(struct inode *inode, int check)
 
 	size = (inode->i_sb->s_blocksize - sizeof(struct ext4_extent_header))
 			/ sizeof(struct ext4_extent);
-	if (!check) {
 #ifdef AGGRESSIVE_TEST
+	if (!check) {
 		if (size > 6)
 			size = 6;
-#endif
 	}
+#endif
 	return size;
 }
 
@@ -197,12 +197,12 @@ static inline int ext4_ext_space_block_idx(struct inode *inode, int check)
 
 	size = (inode->i_sb->s_blocksize - sizeof(struct ext4_extent_header))
 			/ sizeof(struct ext4_extent_idx);
-	if (!check) {
 #ifdef AGGRESSIVE_TEST
+	if (!check) {
 		if (size > 5)
 			size = 5;
-#endif
 	}
+#endif
 	return size;
 }
 
@@ -213,12 +213,12 @@ static inline int ext4_ext_space_root(struct inode *inode, int check)
 	size = sizeof(EXT4_I(inode)->i_data);
 	size -= sizeof(struct ext4_extent_header);
 	size /= sizeof(struct ext4_extent);
-	if (!check) {
 #ifdef AGGRESSIVE_TEST
+	if (!check) {
 		if (size > 3)
 			size = 3;
-#endif
 	}
+#endif
 	return size;
 }
 
@@ -229,12 +229,12 @@ static inline int ext4_ext_space_root_idx(struct inode *inode, int check)
 	size = sizeof(EXT4_I(inode)->i_data);
 	size -= sizeof(struct ext4_extent_header);
 	size /= sizeof(struct ext4_extent_idx);
-	if (!check) {
 #ifdef AGGRESSIVE_TEST
+	if (!check) {
 		if (size > 4)
 			size = 4;
-#endif
 	}
+#endif
 	return size;
 }
 
-- 
1.7.5.1


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

* [PATCH 4/4] ext4: trace punch_hole correctly in ext4_ext_map_blocks
  2011-10-26  7:11 [PATCH 1/4] ext4: fold two if statements into one Yongqiang Yang
  2011-10-26  7:11 ` [PATCH 2/4] ext4: move variable to its scope Yongqiang Yang
  2011-10-26  7:11 ` [PATCH 3/4] ext4: let AGGRESSIVE_TEST brace code only related to itself Yongqiang Yang
@ 2011-10-26  7:11 ` Yongqiang Yang
  2011-10-29 13:51   ` Ted Ts'o
  2011-10-29 13:14 ` [PATCH 1/4] ext4: fold two if statements into one Ted Ts'o
  3 siblings, 1 reply; 8+ messages in thread
From: Yongqiang Yang @ 2011-10-26  7:11 UTC (permalink / raw)
  To: tytso; +Cc: linux-ext4, Yongqiang Yang

When ext4_ext_map_blocks() is called by punch_hole, trace should
trace blocks punched out.

Signed-off-by: Yongqiang Yang <xiaoqiangnk@gmail.com>
---
 fs/ext4/extents.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c
index 49b4e28..58af095 100644
--- a/fs/ext4/extents.c
+++ b/fs/ext4/extents.c
@@ -4173,12 +4173,12 @@ out2:
 		ext4_ext_drop_refs(path);
 		kfree(path);
 	}
-	trace_ext4_ext_map_blocks_exit(inode, map->m_lblk,
-		newblock, map->m_len, err ? err : allocated);

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

* Re: [PATCH 1/4] ext4: fold two if statements into one
  2011-10-26  7:11 [PATCH 1/4] ext4: fold two if statements into one Yongqiang Yang
                   ` (2 preceding siblings ...)
  2011-10-26  7:11 ` [PATCH 4/4] ext4: trace punch_hole correctly in ext4_ext_map_blocks Yongqiang Yang
@ 2011-10-29 13:14 ` Ted Ts'o
  3 siblings, 0 replies; 8+ messages in thread
From: Ted Ts'o @ 2011-10-29 13:14 UTC (permalink / raw)
  To: Yongqiang Yang; +Cc: linux-ext4

On Wed, Oct 26, 2011 at 03:11:49PM +0800, Yongqiang Yang wrote:
> Signed-off-by: Yongqiang Yang <xiaoqiangnk@gmail.com>
> ---
>  fs/ext4/extents.c |   23 +++++++++++------------
>  1 files changed, 11 insertions(+), 12 deletions(-)

Unfortunately this patch is incorrect since it changes when the else
clause would get executed:

       if (a) {
       	   if (b) {
	       ...
	   }
       } else {
           ...
       }

is not the same as:

       if (a && b) {
	   ...
       } else {
           ...
       }

Regards,

					- Ted

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

* Re: [PATCH 2/4] ext4: move variable to its scope
  2011-10-26  7:11 ` [PATCH 2/4] ext4: move variable to its scope Yongqiang Yang
@ 2011-10-29 13:24   ` Ted Ts'o
  0 siblings, 0 replies; 8+ messages in thread
From: Ted Ts'o @ 2011-10-29 13:24 UTC (permalink / raw)
  To: Yongqiang Yang; +Cc: linux-ext4

On Wed, Oct 26, 2011 at 03:11:50PM +0800, Yongqiang Yang wrote:
> Signed-off-by: Yongqiang Yang <xiaoqiangnk@gmail.com>

Applied, thanks.

					- Ted

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

* Re: [PATCH 3/4] ext4: let AGGRESSIVE_TEST brace code only related to itself
  2011-10-26  7:11 ` [PATCH 3/4] ext4: let AGGRESSIVE_TEST brace code only related to itself Yongqiang Yang
@ 2011-10-29 13:30   ` Ted Ts'o
  0 siblings, 0 replies; 8+ messages in thread
From: Ted Ts'o @ 2011-10-29 13:30 UTC (permalink / raw)
  To: Yongqiang Yang; +Cc: linux-ext4

On Wed, Oct 26, 2011 at 03:11:51PM +0800, Yongqiang Yang wrote:
> Signed-off-by: Yongqiang Yang <xiaoqiangnk@gmail.com>

Applied, with a minor tweak --- this *is* a place where folding two
nested if statements is a good idea (and reduces ext4's lines of code
count :-).

					- Ted

commit 2a83a909eab183807ca3ccbb2559e22611131336
Author: Yongqiang Yang <xiaoqiangnk@gmail.com>
Date:   Sat Oct 29 09:29:11 2011 -0400

    ext4: clean up AGGRESSIVE_TEST code
    
    Signed-off-by: Yongqiang Yang <xiaoqiangnk@gmail.com>
    Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>

diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c
index 73823d5..b66cef0 100644
--- a/fs/ext4/extents.c
+++ b/fs/ext4/extents.c
@@ -181,12 +181,10 @@ static inline int ext4_ext_space_block(struct inode *inode, int check)
 
 	size = (inode->i_sb->s_blocksize - sizeof(struct ext4_extent_header))
 			/ sizeof(struct ext4_extent);
-	if (!check) {
 #ifdef AGGRESSIVE_TEST
-		if (size > 6)
-			size = 6;
+	if (!check && size > 6)
+		size = 6;
 #endif
-	}
 	return size;
 }
 
@@ -196,12 +194,10 @@ static inline int ext4_ext_space_block_idx(struct inode *inode, int check)
 
 	size = (inode->i_sb->s_blocksize - sizeof(struct ext4_extent_header))
 			/ sizeof(struct ext4_extent_idx);
-	if (!check) {
 #ifdef AGGRESSIVE_TEST
-		if (size > 5)
-			size = 5;
+	if (!check && size > 5)
+		size = 5;
 #endif
-	}
 	return size;
 }
 
@@ -212,12 +208,10 @@ static inline int ext4_ext_space_root(struct inode *inode, int check)
 	size = sizeof(EXT4_I(inode)->i_data);
 	size -= sizeof(struct ext4_extent_header);
 	size /= sizeof(struct ext4_extent);
-	if (!check) {
 #ifdef AGGRESSIVE_TEST
-		if (size > 3)
-			size = 3;
+	if (!check && size > 3)
+		size = 3;
 #endif
-	}
 	return size;
 }
 
@@ -228,12 +222,10 @@ static inline int ext4_ext_space_root_idx(struct inode *inode, int check)
 	size = sizeof(EXT4_I(inode)->i_data);
 	size -= sizeof(struct ext4_extent_header);
 	size /= sizeof(struct ext4_extent_idx);
-	if (!check) {
 #ifdef AGGRESSIVE_TEST
-		if (size > 4)
-			size = 4;
+	if (!check && size > 4)
+		size = 4;
 #endif
-	}
 	return size;
 }
 

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

* Re: [PATCH 4/4] ext4: trace punch_hole correctly in ext4_ext_map_blocks
  2011-10-26  7:11 ` [PATCH 4/4] ext4: trace punch_hole correctly in ext4_ext_map_blocks Yongqiang Yang
@ 2011-10-29 13:51   ` Ted Ts'o
  0 siblings, 0 replies; 8+ messages in thread
From: Ted Ts'o @ 2011-10-29 13:51 UTC (permalink / raw)
  To: Yongqiang Yang; +Cc: linux-ext4

On Wed, Oct 26, 2011 at 03:11:52PM +0800, Yongqiang Yang wrote:
> When ext4_ext_map_blocks() is called by punch_hole, trace should
> trace blocks punched out.
> 
> Signed-off-by: Yongqiang Yang <xiaoqiangnk@gmail.com>

Thanks for catching this; applied.

						- Ted

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

end of thread, other threads:[~2011-10-29 18:12 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-10-26  7:11 [PATCH 1/4] ext4: fold two if statements into one Yongqiang Yang
2011-10-26  7:11 ` [PATCH 2/4] ext4: move variable to its scope Yongqiang Yang
2011-10-29 13:24   ` Ted Ts'o
2011-10-26  7:11 ` [PATCH 3/4] ext4: let AGGRESSIVE_TEST brace code only related to itself Yongqiang Yang
2011-10-29 13:30   ` Ted Ts'o
2011-10-26  7:11 ` [PATCH 4/4] ext4: trace punch_hole correctly in ext4_ext_map_blocks Yongqiang Yang
2011-10-29 13:51   ` Ted Ts'o
2011-10-29 13:14 ` [PATCH 1/4] ext4: fold two if statements into one Ted Ts'o

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).