ext4: use swap macro in mext_page_double_lock

Message ID 20180709131600.GA9138@embeddedor.com
State Rejected, archived
Headers show
Series
  • ext4: use swap macro in mext_page_double_lock
Related show

Commit Message

Gustavo A. R. Silva July 9, 2018, 1:16 p.m.
Make use of the swap macro and remove unnecessary variable *tmp*.
This makes the code easier to read and maintain. Also, reduces the
stack usage.

This code was detected with the help of Coccinelle.

Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
---
 fs/ext4/move_extent.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

Comments

Theodore Y. Ts'o July 22, 2018, 10:19 p.m. | #1
On Mon, Jul 09, 2018 at 08:16:00AM -0500, Gustavo A. R. Silva wrote:
> Make use of the swap macro and remove unnecessary variable *tmp*.
> This makes the code easier to read and maintain. Also, reduces the
> stack usage.
> 
> This code was detected with the help of Coccinelle.
> 
> Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>

It doesn't actually reduce stack usage.  Look at the definition of
swap() in include/linux/kernel.h:

#define swap(a, b) \
	do { typeof(a) __tmp = (a); (a) = (b); (b) = __tmp; } while (0)

It removes the variable "tmp", and replace it with "__tmp".

It slightly reduces the number of lines of code, so it slightly makes
the code easier to maintainer.  But I think you are really
over-promising how much this commit helps.

Regards,

					- Ted
Gustavo A. R. Silva July 22, 2018, 11:30 p.m. | #2
Hi Theodore,

On 07/22/2018 05:19 PM, Theodore Y. Ts'o wrote:
> On Mon, Jul 09, 2018 at 08:16:00AM -0500, Gustavo A. R. Silva wrote:
>> Make use of the swap macro and remove unnecessary variable *tmp*.
>> This makes the code easier to read and maintain. Also, reduces the
>> stack usage.
>>
>> This code was detected with the help of Coccinelle.
>>
>> Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
> 
> It doesn't actually reduce stack usage.  Look at the definition of
> swap() in include/linux/kernel.h:
> 
> #define swap(a, b) \
> 	do { typeof(a) __tmp = (a); (a) = (b); (b) = __tmp; } while (0)
> 
> It removes the variable "tmp", and replace it with "__tmp".
> 
> It slightly reduces the number of lines of code, so it slightly makes
> the code easier to maintainer.  But I think you are really
> over-promising how much this commit helps.
> 
I'll remove that part from the changelog and send it again.

Thanks
--
Gustavo

Patch

diff --git a/fs/ext4/move_extent.c b/fs/ext4/move_extent.c
index 8e17efd..a409ff7 100644
--- a/fs/ext4/move_extent.c
+++ b/fs/ext4/move_extent.c
@@ -134,9 +134,7 @@  mext_page_double_lock(struct inode *inode1, struct inode *inode2,
 		mapping[0] = inode1->i_mapping;
 		mapping[1] = inode2->i_mapping;
 	} else {
-		pgoff_t tmp = index1;
-		index1 = index2;
-		index2 = tmp;
+		swap(index1, index2);
 		mapping[0] = inode2->i_mapping;
 		mapping[1] = inode1->i_mapping;
 	}