linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] btrfs: memset cur_trans->delayed_refs to zero
@ 2015-09-06 12:25 Alexandru Moise
  2015-09-07 12:24 ` David Sterba
  0 siblings, 1 reply; 10+ messages in thread
From: Alexandru Moise @ 2015-09-06 12:25 UTC (permalink / raw)
  To: clm; +Cc: jbacik, dsterba, linux-btrfs, linux-kernel, 00moses.alexander00

Use memset() to null out the btrfs_delayed_ref_root of
btrfs_transaction instead of setting all the members to 0 by hand.

Signed-off-by: Alexandru Moise <00moses.alexander00@gmail.com>
---
 fs/btrfs/transaction.c | 10 +---------
 1 file changed, 1 insertion(+), 9 deletions(-)

diff --git a/fs/btrfs/transaction.c b/fs/btrfs/transaction.c
index 8f259b3..faccc1b 100644
--- a/fs/btrfs/transaction.c
+++ b/fs/btrfs/transaction.c
@@ -224,15 +224,7 @@ loop:
 	cur_trans->start_time = get_seconds();
 	cur_trans->dirty_bg_run = 0;
 
-	cur_trans->delayed_refs.href_root = RB_ROOT;
-	cur_trans->delayed_refs.dirty_extent_root = RB_ROOT;
-	atomic_set(&cur_trans->delayed_refs.num_entries, 0);
-	cur_trans->delayed_refs.num_heads_ready = 0;
-	cur_trans->delayed_refs.pending_csums = 0;
-	cur_trans->delayed_refs.num_heads = 0;
-	cur_trans->delayed_refs.flushing = 0;
-	cur_trans->delayed_refs.run_delayed_start = 0;
-	cur_trans->delayed_refs.qgroup_to_skip = 0;
+	memset(&cur_trans->delayed_refs, 0, sizeof(cur_trans->delayed_refs));
 
 	/*
 	 * although the tree mod log is per file system and not per transaction,
-- 
2.5.1


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

* Re: [PATCH] btrfs: memset cur_trans->delayed_refs to zero
  2015-09-06 12:25 Alexandru Moise
@ 2015-09-07 12:24 ` David Sterba
  2015-09-07 13:44   ` Alexandru Moise
  0 siblings, 1 reply; 10+ messages in thread
From: David Sterba @ 2015-09-07 12:24 UTC (permalink / raw)
  To: Alexandru Moise; +Cc: clm, jbacik, linux-btrfs, linux-kernel

On Sun, Sep 06, 2015 at 12:25:27PM +0000, Alexandru Moise wrote:
> Use memset() to null out the btrfs_delayed_ref_root of
> btrfs_transaction instead of setting all the members to 0 by hand.
> 
> Signed-off-by: Alexandru Moise <00moses.alexander00@gmail.com>
> ---
>  fs/btrfs/transaction.c | 10 +---------
>  1 file changed, 1 insertion(+), 9 deletions(-)
> 
> diff --git a/fs/btrfs/transaction.c b/fs/btrfs/transaction.c
> index 8f259b3..faccc1b 100644
> --- a/fs/btrfs/transaction.c
> +++ b/fs/btrfs/transaction.c
> @@ -224,15 +224,7 @@ loop:
>  	cur_trans->start_time = get_seconds();
>  	cur_trans->dirty_bg_run = 0;
>  
> -	cur_trans->delayed_refs.href_root = RB_ROOT;
> -	cur_trans->delayed_refs.dirty_extent_root = RB_ROOT;
> -	atomic_set(&cur_trans->delayed_refs.num_entries, 0);

Please keep these. Even if it means duplicated setting to 0, it's using
the correct constructor, should it ever change (RB_ROOT) or does some
extra work (atomic_set).

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

* Re: [PATCH] btrfs: memset cur_trans->delayed_refs to zero
  2015-09-07 12:24 ` David Sterba
@ 2015-09-07 13:44   ` Alexandru Moise
  0 siblings, 0 replies; 10+ messages in thread
From: Alexandru Moise @ 2015-09-07 13:44 UTC (permalink / raw)
  To: David Sterba; +Cc: clm, jbacik, linux-btrfs, linux-kernel

On Mon, Sep 07, 2015 at 02:24:20PM +0200, David Sterba wrote:
> On Sun, Sep 06, 2015 at 12:25:27PM +0000, Alexandru Moise wrote:
> > Use memset() to null out the btrfs_delayed_ref_root of
> > btrfs_transaction instead of setting all the members to 0 by hand.
> > 
> > Signed-off-by: Alexandru Moise <00moses.alexander00@gmail.com>
> > ---
> >  fs/btrfs/transaction.c | 10 +---------
> >  1 file changed, 1 insertion(+), 9 deletions(-)
> > 
> > diff --git a/fs/btrfs/transaction.c b/fs/btrfs/transaction.c
> > index 8f259b3..faccc1b 100644
> > --- a/fs/btrfs/transaction.c
> > +++ b/fs/btrfs/transaction.c
> > @@ -224,15 +224,7 @@ loop:
> >  	cur_trans->start_time = get_seconds();
> >  	cur_trans->dirty_bg_run = 0;
> >  
> > -	cur_trans->delayed_refs.href_root = RB_ROOT;
> > -	cur_trans->delayed_refs.dirty_extent_root = RB_ROOT;
> > -	atomic_set(&cur_trans->delayed_refs.num_entries, 0);
> 
> Please keep these. Even if it means duplicated setting to 0, it's using
> the correct constructor, should it ever change (RB_ROOT) or does some
> extra work (atomic_set).

Sure, I'll send off another patch right away.

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

* [PATCH] btrfs: memset cur_trans->delayed_refs to zero
@ 2015-09-07 13:45 Alexandru Moise
  2015-09-07 14:01 ` David Sterba
  0 siblings, 1 reply; 10+ messages in thread
From: Alexandru Moise @ 2015-09-07 13:45 UTC (permalink / raw)
  To: clm; +Cc: jbacik, dsterba, linux-btrfs, linux-kernel

Use memset() to null out the btrfs_delayed_ref_root of
btrfs_transaction instead of setting all the members to 0 by hand.

Signed-off-by: Alexandru Moise <00moses.alexander00@gmail.com>
---
 fs/btrfs/transaction.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/fs/btrfs/transaction.c b/fs/btrfs/transaction.c
index 8f259b3..0581fb4 100644
--- a/fs/btrfs/transaction.c
+++ b/fs/btrfs/transaction.c
@@ -224,15 +224,15 @@ loop:
 	cur_trans->start_time = get_seconds();
 	cur_trans->dirty_bg_run = 0;
 
+	memset(&cur_trans->delayed_refs, 0, sizeof(cur_trans->delayed_refs));
+
+	/*
+	 * For now RB_ROOT means set to NULL but this could change in
+	 * the future
+	 */
 	cur_trans->delayed_refs.href_root = RB_ROOT;
 	cur_trans->delayed_refs.dirty_extent_root = RB_ROOT;
 	atomic_set(&cur_trans->delayed_refs.num_entries, 0);
-	cur_trans->delayed_refs.num_heads_ready = 0;
-	cur_trans->delayed_refs.pending_csums = 0;
-	cur_trans->delayed_refs.num_heads = 0;
-	cur_trans->delayed_refs.flushing = 0;
-	cur_trans->delayed_refs.run_delayed_start = 0;
-	cur_trans->delayed_refs.qgroup_to_skip = 0;
 
 	/*
 	 * although the tree mod log is per file system and not per transaction,
-- 
1.9.1


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

* Re: [PATCH] btrfs: memset cur_trans->delayed_refs to zero
  2015-09-07 13:45 [PATCH] btrfs: memset cur_trans->delayed_refs to zero Alexandru Moise
@ 2015-09-07 14:01 ` David Sterba
  2015-09-07 14:23   ` Alexandru Moise
  0 siblings, 1 reply; 10+ messages in thread
From: David Sterba @ 2015-09-07 14:01 UTC (permalink / raw)
  To: Alexandru Moise; +Cc: clm, jbacik, linux-btrfs, linux-kernel

So, updated patches should mention that in the subject eg:

[PATCH v2] btrfs: memset cur_trans->delayed_refs to zero

On Mon, Sep 07, 2015 at 04:45:02PM +0300, Alexandru Moise wrote:
> Use memset() to null out the btrfs_delayed_ref_root of
> btrfs_transaction instead of setting all the members to 0 by hand.
> 
> Signed-off-by: Alexandru Moise <00moses.alexander00@gmail.com>
> ---

And in this section (ie. after the first ---) put a brief description of
the changes.

>  fs/btrfs/transaction.c | 12 ++++++------
>  1 file changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/fs/btrfs/transaction.c b/fs/btrfs/transaction.c
> index 8f259b3..0581fb4 100644
> --- a/fs/btrfs/transaction.c
> +++ b/fs/btrfs/transaction.c
> @@ -224,15 +224,15 @@ loop:
>  	cur_trans->start_time = get_seconds();
>  	cur_trans->dirty_bg_run = 0;
>  
> +	memset(&cur_trans->delayed_refs, 0, sizeof(cur_trans->delayed_refs));
> +
> +	/*
> +	 * For now RB_ROOT means set to NULL but this could change in
> +	 * the future
> +	 */

I don't think such comment necessary, the code is clear enough without
it.

>  	cur_trans->delayed_refs.href_root = RB_ROOT;
>  	cur_trans->delayed_refs.dirty_extent_root = RB_ROOT;

.

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

* Re: [PATCH] btrfs: memset cur_trans->delayed_refs to zero
  2015-09-07 14:01 ` David Sterba
@ 2015-09-07 14:23   ` Alexandru Moise
  0 siblings, 0 replies; 10+ messages in thread
From: Alexandru Moise @ 2015-09-07 14:23 UTC (permalink / raw)
  To: David Sterba; +Cc: clm, jbacik, linux-btrfs, linux-kernel

On Mon, Sep 07, 2015 at 04:01:22PM +0200, David Sterba wrote:
> So, updated patches should mention that in the subject eg:
> 
> [PATCH v2] btrfs: memset cur_trans->delayed_refs to zero
> 
> On Mon, Sep 07, 2015 at 04:45:02PM +0300, Alexandru Moise wrote:
> > Use memset() to null out the btrfs_delayed_ref_root of
> > btrfs_transaction instead of setting all the members to 0 by hand.
> > 
> > Signed-off-by: Alexandru Moise <00moses.alexander00@gmail.com>
> > ---
> 
> And in this section (ie. after the first ---) put a brief description of
> the changes.
Will do.
> 
> >  fs/btrfs/transaction.c | 12 ++++++------
> >  1 file changed, 6 insertions(+), 6 deletions(-)
> > 
> > diff --git a/fs/btrfs/transaction.c b/fs/btrfs/transaction.c
> > index 8f259b3..0581fb4 100644
> > --- a/fs/btrfs/transaction.c
> > +++ b/fs/btrfs/transaction.c
> > @@ -224,15 +224,15 @@ loop:
> >  	cur_trans->start_time = get_seconds();
> >  	cur_trans->dirty_bg_run = 0;
> >  
> > +	memset(&cur_trans->delayed_refs, 0, sizeof(cur_trans->delayed_refs));
> > +
> > +	/*
> > +	 * For now RB_ROOT means set to NULL but this could change in
> > +	 * the future
> > +	 */
> 
> I don't think such comment necessary, the code is clear enough without
> it.
> 
> >  	cur_trans->delayed_refs.href_root = RB_ROOT;
> >  	cur_trans->delayed_refs.dirty_extent_root = RB_ROOT;
> 
> .
Alright I can agree to that, thanks.

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

* [PATCH] btrfs: memset cur_trans->delayed_refs to zero
@ 2015-09-07 14:24 Alexandru Moise
  2015-09-22 13:04 ` David Sterba
  0 siblings, 1 reply; 10+ messages in thread
From: Alexandru Moise @ 2015-09-07 14:24 UTC (permalink / raw)
  To: clm; +Cc: jbacik, dsterba, linux-btrfs, linux-kernel

Use memset() to null out the btrfs_delayed_ref_root of
btrfs_transaction instead of setting all the members to 0 by hand.

Signed-off-by: Alexandru Moise <00moses.alexander00@gmail.com>
---
Rather than setting each member of ->delayed_refs by hand we should
adhere to the practice of using memset() calls to fill those memory
locations with zeroes. We make an exception however for the rb_root
and atomic_t variable to make room for change in future delayed_refs
implementations.

 fs/btrfs/transaction.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/fs/btrfs/transaction.c b/fs/btrfs/transaction.c
index 8f259b3..e4f7dcb 100644
--- a/fs/btrfs/transaction.c
+++ b/fs/btrfs/transaction.c
@@ -224,15 +224,11 @@ loop:
 	cur_trans->start_time = get_seconds();
 	cur_trans->dirty_bg_run = 0;
 
+	memset(&cur_trans->delayed_refs, 0, sizeof(cur_trans->delayed_refs));
+
 	cur_trans->delayed_refs.href_root = RB_ROOT;
 	cur_trans->delayed_refs.dirty_extent_root = RB_ROOT;
 	atomic_set(&cur_trans->delayed_refs.num_entries, 0);
-	cur_trans->delayed_refs.num_heads_ready = 0;
-	cur_trans->delayed_refs.pending_csums = 0;
-	cur_trans->delayed_refs.num_heads = 0;
-	cur_trans->delayed_refs.flushing = 0;
-	cur_trans->delayed_refs.run_delayed_start = 0;
-	cur_trans->delayed_refs.qgroup_to_skip = 0;
 
 	/*
 	 * although the tree mod log is per file system and not per transaction,
-- 
1.9.1


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

* Re: [PATCH] btrfs: memset cur_trans->delayed_refs to zero
  2015-09-07 14:24 Alexandru Moise
@ 2015-09-22 13:04 ` David Sterba
  2015-09-22 13:19   ` Alexandru Moise
  0 siblings, 1 reply; 10+ messages in thread
From: David Sterba @ 2015-09-22 13:04 UTC (permalink / raw)
  To: Alexandru Moise; +Cc: clm, jbacik, dsterba, linux-btrfs, linux-kernel

On Mon, Sep 07, 2015 at 05:24:37PM +0300, Alexandru Moise wrote:
> Use memset() to null out the btrfs_delayed_ref_root of
> btrfs_transaction instead of setting all the members to 0 by hand.
> 
> Signed-off-by: Alexandru Moise <00moses.alexander00@gmail.com>

Reviewed-by: David Sterba <dsterba@suse.com>

Please use the versioning in patch subject so we know which version is
the latest, like

[PATCH v4] btrfs: memset cur_trans->delayed_refs to zero

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

* Re: [PATCH] btrfs: memset cur_trans->delayed_refs to zero
  2015-09-22 13:04 ` David Sterba
@ 2015-09-22 13:19   ` Alexandru Moise
  2015-09-22 13:24     ` David Sterba
  0 siblings, 1 reply; 10+ messages in thread
From: Alexandru Moise @ 2015-09-22 13:19 UTC (permalink / raw)
  To: David Sterba; +Cc: clm, jbacik, linux-btrfs, linux-kernel

On Tue, Sep 22, 2015 at 03:04:54PM +0200, David Sterba wrote:
> On Mon, Sep 07, 2015 at 05:24:37PM +0300, Alexandru Moise wrote:
> > Use memset() to null out the btrfs_delayed_ref_root of
> > btrfs_transaction instead of setting all the members to 0 by hand.
> > 
> > Signed-off-by: Alexandru Moise <00moses.alexander00@gmail.com>
> 
> Reviewed-by: David Sterba <dsterba@suse.com>
> 
> Please use the versioning in patch subject so we know which version is
> the latest, like
> 
> [PATCH v4] btrfs: memset cur_trans->delayed_refs to zero

Alright, do you want me to resend it with the different subject tag
or shall I just keep that in mind for future patches?

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

* Re: [PATCH] btrfs: memset cur_trans->delayed_refs to zero
  2015-09-22 13:19   ` Alexandru Moise
@ 2015-09-22 13:24     ` David Sterba
  0 siblings, 0 replies; 10+ messages in thread
From: David Sterba @ 2015-09-22 13:24 UTC (permalink / raw)
  To: Alexandru Moise; +Cc: clm, jbacik, linux-btrfs, linux-kernel

On Tue, Sep 22, 2015 at 04:19:36PM +0300, Alexandru Moise wrote:
> Alright, do you want me to resend it with the different subject tag
> or shall I just keep that in mind for future patches?

No need to resend.

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

end of thread, other threads:[~2015-09-22 13:25 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-09-07 13:45 [PATCH] btrfs: memset cur_trans->delayed_refs to zero Alexandru Moise
2015-09-07 14:01 ` David Sterba
2015-09-07 14:23   ` Alexandru Moise
  -- strict thread matches above, loose matches on Subject: below --
2015-09-07 14:24 Alexandru Moise
2015-09-22 13:04 ` David Sterba
2015-09-22 13:19   ` Alexandru Moise
2015-09-22 13:24     ` David Sterba
2015-09-06 12:25 Alexandru Moise
2015-09-07 12:24 ` David Sterba
2015-09-07 13:44   ` Alexandru Moise

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