linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] btrfs: fix a compiler warning of may be used uninitialized
@ 2015-09-02  7:19 Zhao Lei
  2015-09-29 14:21 ` David Sterba
  0 siblings, 1 reply; 5+ messages in thread
From: Zhao Lei @ 2015-09-02  7:19 UTC (permalink / raw)
  To: linux-btrfs; +Cc: Zhao Lei

Not real problem, just avoid warning of:
 fs/btrfs/inode-map.c: In function 'btrfs_unpin_free_ino':
 fs/btrfs/inode-map.c:252: warning: 'count' may be used uninitialized in this function
In gcc 4.8.3

Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com>
---
 fs/btrfs/inode-map.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/btrfs/inode-map.c b/fs/btrfs/inode-map.c
index d4a582a..e094e3b 100644
--- a/fs/btrfs/inode-map.c
+++ b/fs/btrfs/inode-map.c
@@ -249,7 +249,7 @@ void btrfs_unpin_free_ino(struct btrfs_root *root)
 	spinlock_t *rbroot_lock = &root->free_ino_pinned->tree_lock;
 	struct btrfs_free_space *info;
 	struct rb_node *n;
-	u64 count;
+	u64 count = 0;
 
 	if (!btrfs_test_opt(root, INODE_MAP_CACHE))
 		return;
-- 
1.8.5.1


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

* Re: [PATCH] btrfs: fix a compiler warning of may be used uninitialized
  2015-09-02  7:19 [PATCH] btrfs: fix a compiler warning of may be used uninitialized Zhao Lei
@ 2015-09-29 14:21 ` David Sterba
  2015-09-30  3:55   ` Zhao Lei
  0 siblings, 1 reply; 5+ messages in thread
From: David Sterba @ 2015-09-29 14:21 UTC (permalink / raw)
  To: Zhao Lei; +Cc: linux-btrfs

On Wed, Sep 02, 2015 at 03:19:59PM +0800, Zhao Lei wrote:
> Not real problem, just avoid warning of:
>  fs/btrfs/inode-map.c: In function 'btrfs_unpin_free_ino':
>  fs/btrfs/inode-map.c:252: warning: 'count' may be used uninitialized in this function
> In gcc 4.8.3
> 
> Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com>
> ---
>  fs/btrfs/inode-map.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/fs/btrfs/inode-map.c b/fs/btrfs/inode-map.c
> index d4a582a..e094e3b 100644
> --- a/fs/btrfs/inode-map.c
> +++ b/fs/btrfs/inode-map.c
> @@ -249,7 +249,7 @@ void btrfs_unpin_free_ino(struct btrfs_root *root)
>  	spinlock_t *rbroot_lock = &root->free_ino_pinned->tree_lock;
>  	struct btrfs_free_space *info;
>  	struct rb_node *n;
> -	u64 count;
> +	u64 count = 0;

AFAICS the codepath that would use uninitialized value of count is not
reachable:

		    add_to_ctl = true

270                 if (info->offset > root->ino_cache_progress)
271                         add_to_ctl = false;
272                 else if (info->offset + info->bytes > root->ino_cache_progress)
273                         count = root->ino_cache_progress - info->offset + 1;
274                 else
275                         count = info->bytes;
276
277                 rb_erase(&info->offset_index, rbroot);
278                 spin_unlock(rbroot_lock);
279                 if (add_to_ctl)
280                         __btrfs_add_free_space(ctl, info->offset, count);

count is defined iff add_to_ctl == true, so the patch is not necessary. And I'm
not quite sure that 0 passed down to __btrfs_add_free_space as 'bytes' makes
sense at all.

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

* RE: [PATCH] btrfs: fix a compiler warning of may be used uninitialized
  2015-09-29 14:21 ` David Sterba
@ 2015-09-30  3:55   ` Zhao Lei
  2015-09-30  8:18     ` Holger Hoffstätte
  2015-09-30 14:58     ` David Sterba
  0 siblings, 2 replies; 5+ messages in thread
From: Zhao Lei @ 2015-09-30  3:55 UTC (permalink / raw)
  To: dsterba; +Cc: linux-btrfs

Hi, David Sterba

Thanks for reviewing.

> -----Original Message-----
> From: David Sterba [mailto:dsterba@suse.cz]
> Sent: Tuesday, September 29, 2015 10:22 PM
> To: Zhao Lei <zhaolei@cn.fujitsu.com>
> Cc: linux-btrfs@vger.kernel.org
> Subject: Re: [PATCH] btrfs: fix a compiler warning of may be used uninitialized
> 
> On Wed, Sep 02, 2015 at 03:19:59PM +0800, Zhao Lei wrote:
> > Not real problem, just avoid warning of:
> >  fs/btrfs/inode-map.c: In function 'btrfs_unpin_free_ino':
> >  fs/btrfs/inode-map.c:252: warning: 'count' may be used uninitialized
> > in this function In gcc 4.8.3
> >
> > Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com>
> > ---
> >  fs/btrfs/inode-map.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/fs/btrfs/inode-map.c b/fs/btrfs/inode-map.c index
> > d4a582a..e094e3b 100644
> > --- a/fs/btrfs/inode-map.c
> > +++ b/fs/btrfs/inode-map.c
> > @@ -249,7 +249,7 @@ void btrfs_unpin_free_ino(struct btrfs_root *root)
> >  	spinlock_t *rbroot_lock = &root->free_ino_pinned->tree_lock;
> >  	struct btrfs_free_space *info;
> >  	struct rb_node *n;
> > -	u64 count;
> > +	u64 count = 0;
> 
> AFAICS the codepath that would use uninitialized value of count is not
> reachable:
> 
> 		    add_to_ctl = true
> 
> 270                 if (info->offset > root->ino_cache_progress)
> 271                         add_to_ctl = false;
> 272                 else if (info->offset + info->bytes >
> root->ino_cache_progress)
> 273                         count = root->ino_cache_progress -
> info->offset + 1;
> 274                 else
> 275                         count = info->bytes;
> 276
> 277                 rb_erase(&info->offset_index, rbroot);
> 278                 spin_unlock(rbroot_lock);
> 279                 if (add_to_ctl)
> 280                         __btrfs_add_free_space(ctl, info->offset,
> count);
> 
> count is defined iff add_to_ctl == true, so the patch is not necessary. And I'm
> not quite sure that 0 passed down to __btrfs_add_free_space as 'bytes' makes
> sense at all.

Agree above all.

So I write following description in changelog:
  "Not real problem, just avoid warning of: ..."

It is just to avoid complier warning, no function changed.
A warning in compiler output is not pretty:)

Thanks
Zhaolei



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

* Re: [PATCH] btrfs: fix a compiler warning of may be used uninitialized
  2015-09-30  3:55   ` Zhao Lei
@ 2015-09-30  8:18     ` Holger Hoffstätte
  2015-09-30 14:58     ` David Sterba
  1 sibling, 0 replies; 5+ messages in thread
From: Holger Hoffstätte @ 2015-09-30  8:18 UTC (permalink / raw)
  To: Zhao Lei, dsterba; +Cc: linux-btrfs

On 09/30/15 05:55, Zhao Lei wrote:
>> count is defined iff add_to_ctl == true, so the patch is not necessary. And I'm
>> not quite sure that 0 passed down to __btrfs_add_free_space as 'bytes' makes
>> sense at all.
> 
> Agree above all.
> 
> So I write following description in changelog:
>   "Not real problem, just avoid warning of: ..."
> 
> It is just to avoid complier warning, no function changed.
> A warning in compiler output is not pretty:)

This looks more like a false-positive with gcc 4.8.3.
With 5.2:

..
  CC [M]  fs/btrfs/file-item.o
  CC [M]  fs/btrfs/inode-item.o
  CC [M]  fs/btrfs/inode-map.o
  CC [M]  fs/btrfs/disk-io.o
  CC [M]  fs/btrfs/transaction.o
..

No warning, as expected.

-h


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

* Re: [PATCH] btrfs: fix a compiler warning of may be used uninitialized
  2015-09-30  3:55   ` Zhao Lei
  2015-09-30  8:18     ` Holger Hoffstätte
@ 2015-09-30 14:58     ` David Sterba
  1 sibling, 0 replies; 5+ messages in thread
From: David Sterba @ 2015-09-30 14:58 UTC (permalink / raw)
  To: Zhao Lei; +Cc: linux-btrfs

On Wed, Sep 30, 2015 at 11:55:13AM +0800, Zhao Lei wrote:
> > AFAICS the codepath that would use uninitialized value of count is not
> > reachable:
> > 
> > 		    add_to_ctl = true
> > 
> > 270                 if (info->offset > root->ino_cache_progress)
> > 271                         add_to_ctl = false;
> > 272                 else if (info->offset + info->bytes >
> > root->ino_cache_progress)
> > 273                         count = root->ino_cache_progress -
> > info->offset + 1;
> > 274                 else
> > 275                         count = info->bytes;
> > 276
> > 277                 rb_erase(&info->offset_index, rbroot);
> > 278                 spin_unlock(rbroot_lock);
> > 279                 if (add_to_ctl)
> > 280                         __btrfs_add_free_space(ctl, info->offset,
> > count);
> > 
> > count is defined iff add_to_ctl == true, so the patch is not necessary. And I'm
> > not quite sure that 0 passed down to __btrfs_add_free_space as 'bytes' makes
> > sense at all.
> 
> Agree above all.
> 
> So I write following description in changelog:
>   "Not real problem, just avoid warning of: ..."
> 
> It is just to avoid complier warning, no function changed.
> A warning in compiler output is not pretty:)

And the compiler is wrong in this case, the code is fine as is. I'd say
go fix you compiler and the output will be pretty :) No really, this
kind of fixes brings false sense of "fixing something in the code".

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

end of thread, other threads:[~2015-09-30 14:59 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-09-02  7:19 [PATCH] btrfs: fix a compiler warning of may be used uninitialized Zhao Lei
2015-09-29 14:21 ` David Sterba
2015-09-30  3:55   ` Zhao Lei
2015-09-30  8:18     ` Holger Hoffstätte
2015-09-30 14:58     ` David Sterba

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