All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jaegeuk Kim <jaegeuk@kernel.org>
To: Arnd Bergmann <arnd@arndb.de>
Cc: Chao Yu <yuchao0@huawei.com>, Fan Li <fanofcode.li@samsung.com>,
	Weichao Guo <guoweichao@huawei.com>,
	linux-f2fs-devel@lists.sourceforge.net,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH] f2fs: hide a maybe-uninitialized warning
Date: Wed, 2 Nov 2016 09:34:39 -0700	[thread overview]
Message-ID: <20161102163439.GA48728@jaegeuk> (raw)
In-Reply-To: <20161102135226.2753644-1-arnd@arndb.de>

Replaced with this.
Thanks, Arnd & Chao, ;)

On Wed, Nov 02, 2016 at 02:52:15PM +0100, Arnd Bergmann wrote:
> gcc is unsure about the use of last_ofs_in_node, which might happen
> without a prior initialization:
> 
> fs/f2fs//git/arm-soc/fs/f2fs/data.c: In function ‘f2fs_map_blocks’:
> fs/f2fs/data.c:799:54: warning: ‘last_ofs_in_node’ may be used uninitialized in this function [-Wmaybe-uninitialized]
>    if (prealloc && dn.ofs_in_node != last_ofs_in_node + 1) {
> 
> As pointed out by Chao Yu, the code is actually correct as 'prealloc'
> is only set if the last_ofs_in_node has been set, the two always
> get updated together.
> 
> This initializes last_ofs_in_node to dn.ofs_in_node for each
> new dnode at the start of the 'next_block' loop, which at that
> point is a correct initialization as well. I assume that compilers
> that correctly track the contents of the variables and do not
> warn about the condition also figure out that they can eliminate
> the extra assignment here.
> 
> Fixes: 46008c6d4232 ("f2fs: support in batch multi blocks preallocation")
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
>  fs/f2fs/data.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c
> index a59ea8e60040..6f01aaddfce9 100644
> --- a/fs/f2fs/data.c
> +++ b/fs/f2fs/data.c
> @@ -719,7 +719,7 @@ int f2fs_map_blocks(struct inode *inode, struct f2fs_map_blocks *map,
>  	}
>  
>  	prealloc = 0;
> -	ofs_in_node = dn.ofs_in_node;
> +	last_ofs_in_node = ofs_in_node = dn.ofs_in_node;
>  	end_offset = ADDRS_PER_PAGE(dn.node_page, inode);
>  
>  next_block:
> -- 
> 2.9.0

      reply	other threads:[~2016-11-02 16:34 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-11-02 13:52 [PATCH] f2fs: hide a maybe-uninitialized warning Arnd Bergmann
2016-11-02 13:52 ` Arnd Bergmann
2016-11-02 16:34 ` Jaegeuk Kim [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20161102163439.GA48728@jaegeuk \
    --to=jaegeuk@kernel.org \
    --cc=arnd@arndb.de \
    --cc=fanofcode.li@samsung.com \
    --cc=guoweichao@huawei.com \
    --cc=linux-f2fs-devel@lists.sourceforge.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=yuchao0@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.