All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eric Whitney <enwlinux@gmail.com>
To: Dan Carpenter <dan.carpenter@oracle.com>
Cc: kbuild@lists.01.org, Eric Whitney <enwlinux@gmail.com>,
	lkp@intel.com, kbuild-all@lists.01.org,
	linux-ext4@vger.kernel.org, Theodore Ts'o <tytso@mit.edu>
Subject: Re: [ext4:dev 6/8] fs/ext4/extents.c:4456 ext4_alloc_file_blocks() error: uninitialized symbol 'ret'.
Date: Fri, 19 Feb 2021 11:08:04 -0500	[thread overview]
Message-ID: <20210219160804.GA21133@localhost.localdomain> (raw)
In-Reply-To: <20210219082804.GR2087@kadam>

* Dan Carpenter <dan.carpenter@oracle.com>:
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4.git dev
> head:   0a76945fd1ba2ab44da7b578b311efdfedf92e6c
> commit: 3258386aba670e3406a499d2d0b7395e14c8d097 [6/8] ext4: reset retry counter when ext4_alloc_file_blocks() makes progress
> config: i386-randconfig-m021-20210215 (attached as .config)
> compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
> 
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@intel.com>
> Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
> 
> New smatch warnings:
> fs/ext4/extents.c:4456 ext4_alloc_file_blocks() error: uninitialized symbol 'ret'.
> 
> Old smatch warnings:
> fs/ext4/extents.c:2396 ext4_rereserve_cluster() warn: should '(1) << sbi->s_cluster_bits' be a 64 bit type?
> include/linux/fs.h:861 i_size_write() warn: statement has no effect 31
> fs/ext4/extents.c:5760 ext4_clu_mapped() warn: should 'lclu << sbi->s_cluster_bits' be a 64 bit type?
> fs/ext4/extents.c:6009 ext4_ext_replay_set_iblocks() warn: should 'numblks << (inode->i_sb->s_blocksize_bits - 9)' be a 64 bit type?
> 
> vim +/ret +4456 fs/ext4/extents.c
> 
> 0e8b6879f3c234 Lukas Czerner      2014-03-18  4379  static int ext4_alloc_file_blocks(struct file *file, ext4_lblk_t offset,
> c174e6d6979a04 Dmitry Monakhov    2014-08-27  4380  				  ext4_lblk_t len, loff_t new_size,
>                                                                                   ^^^^^^^^^^^^^^^
> Can "len" be zero?  If so then we have a problem, if not then this is
> a false positive.


This should be a false positive, but there's no reason not to silence this
warning.  I'll post a v2 correcting the original patch.

Eric


> 
> 77a2e84d51729d Tahsin Erdogan     2017-08-05  4381  				  int flags)
> 0e8b6879f3c234 Lukas Czerner      2014-03-18  4382  {
> 0e8b6879f3c234 Lukas Czerner      2014-03-18  4383  	struct inode *inode = file_inode(file);
> 0e8b6879f3c234 Lukas Czerner      2014-03-18  4384  	handle_t *handle;
> 3258386aba670e Eric Whitney       2021-01-13  4385  	int ret, ret2 = 0, ret3 = 0;
> 0e8b6879f3c234 Lukas Czerner      2014-03-18  4386  	int retries = 0;
> 4134f5c88dcd5b Lukas Czerner      2015-06-15  4387  	int depth = 0;
> 0e8b6879f3c234 Lukas Czerner      2014-03-18  4388  	struct ext4_map_blocks map;
> 0e8b6879f3c234 Lukas Czerner      2014-03-18  4389  	unsigned int credits;
> c174e6d6979a04 Dmitry Monakhov    2014-08-27  4390  	loff_t epos;
> 0e8b6879f3c234 Lukas Czerner      2014-03-18  4391  
> c3fe493ccdb1f4 Fabian Frederick   2016-09-15  4392  	BUG_ON(!ext4_test_inode_flag(inode, EXT4_INODE_EXTENTS));
> 0e8b6879f3c234 Lukas Czerner      2014-03-18  4393  	map.m_lblk = offset;
> c174e6d6979a04 Dmitry Monakhov    2014-08-27  4394  	map.m_len = len;
> 0e8b6879f3c234 Lukas Czerner      2014-03-18  4395  	/*
> 0e8b6879f3c234 Lukas Czerner      2014-03-18  4396  	 * Don't normalize the request if it can fit in one extent so
> 0e8b6879f3c234 Lukas Czerner      2014-03-18  4397  	 * that it doesn't get unnecessarily split into multiple
> 0e8b6879f3c234 Lukas Czerner      2014-03-18  4398  	 * extents.
> 0e8b6879f3c234 Lukas Czerner      2014-03-18  4399  	 */
> 556615dcbf38b0 Lukas Czerner      2014-04-20  4400  	if (len <= EXT_UNWRITTEN_MAX_LEN)
> 0e8b6879f3c234 Lukas Czerner      2014-03-18  4401  		flags |= EXT4_GET_BLOCKS_NO_NORMALIZE;
> 0e8b6879f3c234 Lukas Czerner      2014-03-18  4402  
> 0e8b6879f3c234 Lukas Czerner      2014-03-18  4403  	/*
> 0e8b6879f3c234 Lukas Czerner      2014-03-18  4404  	 * credits to insert 1 extent into extent tree
> 0e8b6879f3c234 Lukas Czerner      2014-03-18  4405  	 */
> 0e8b6879f3c234 Lukas Czerner      2014-03-18  4406  	credits = ext4_chunk_trans_blocks(inode, len);
> 4134f5c88dcd5b Lukas Czerner      2015-06-15  4407  	depth = ext_depth(inode);
> 0e8b6879f3c234 Lukas Czerner      2014-03-18  4408  
> 0e8b6879f3c234 Lukas Czerner      2014-03-18  4409  retry:
> 3258386aba670e Eric Whitney       2021-01-13  4410  	while (len) {
>                                                         ^^^^^^^^^^^^^
> 
> 4134f5c88dcd5b Lukas Czerner      2015-06-15  4411  		/*
> 4134f5c88dcd5b Lukas Czerner      2015-06-15  4412  		 * Recalculate credits when extent tree depth changes.
> 4134f5c88dcd5b Lukas Czerner      2015-06-15  4413  		 */
> 011c88e36c26a0 Dan Carpenter      2016-12-03  4414  		if (depth != ext_depth(inode)) {
> 4134f5c88dcd5b Lukas Czerner      2015-06-15  4415  			credits = ext4_chunk_trans_blocks(inode, len);
> 4134f5c88dcd5b Lukas Czerner      2015-06-15  4416  			depth = ext_depth(inode);
> 4134f5c88dcd5b Lukas Czerner      2015-06-15  4417  		}
> 4134f5c88dcd5b Lukas Czerner      2015-06-15  4418  
> 0e8b6879f3c234 Lukas Czerner      2014-03-18  4419  		handle = ext4_journal_start(inode, EXT4_HT_MAP_BLOCKS,
> 0e8b6879f3c234 Lukas Czerner      2014-03-18  4420  					    credits);
> 0e8b6879f3c234 Lukas Czerner      2014-03-18  4421  		if (IS_ERR(handle)) {
> 0e8b6879f3c234 Lukas Czerner      2014-03-18  4422  			ret = PTR_ERR(handle);
> 0e8b6879f3c234 Lukas Czerner      2014-03-18  4423  			break;
> 0e8b6879f3c234 Lukas Czerner      2014-03-18  4424  		}
> 0e8b6879f3c234 Lukas Czerner      2014-03-18  4425  		ret = ext4_map_blocks(handle, inode, &map, flags);
> 0e8b6879f3c234 Lukas Czerner      2014-03-18  4426  		if (ret <= 0) {
> 0e8b6879f3c234 Lukas Czerner      2014-03-18  4427  			ext4_debug("inode #%lu: block %u: len %u: "
> 0e8b6879f3c234 Lukas Czerner      2014-03-18  4428  				   "ext4_ext_map_blocks returned %d",
> 0e8b6879f3c234 Lukas Czerner      2014-03-18  4429  				   inode->i_ino, map.m_lblk,
> 0e8b6879f3c234 Lukas Czerner      2014-03-18  4430  				   map.m_len, ret);
> 0e8b6879f3c234 Lukas Czerner      2014-03-18  4431  			ext4_mark_inode_dirty(handle, inode);
> 3258386aba670e Eric Whitney       2021-01-13  4432  			ext4_journal_stop(handle);
> 0e8b6879f3c234 Lukas Czerner      2014-03-18  4433  			break;
> 0e8b6879f3c234 Lukas Czerner      2014-03-18  4434  		}
> 3258386aba670e Eric Whitney       2021-01-13  4435  		/*
> 3258386aba670e Eric Whitney       2021-01-13  4436  		 * allow a full retry cycle for any remaining allocations
> 3258386aba670e Eric Whitney       2021-01-13  4437  		 */
> 3258386aba670e Eric Whitney       2021-01-13  4438  		retries = 0;
> c174e6d6979a04 Dmitry Monakhov    2014-08-27  4439  		map.m_lblk += ret;
> c174e6d6979a04 Dmitry Monakhov    2014-08-27  4440  		map.m_len = len = len - ret;
> c174e6d6979a04 Dmitry Monakhov    2014-08-27  4441  		epos = (loff_t)map.m_lblk << inode->i_blkbits;
> eeca7ea1baa939 Deepa Dinamani     2016-11-14  4442  		inode->i_ctime = current_time(inode);
> c174e6d6979a04 Dmitry Monakhov    2014-08-27  4443  		if (new_size) {
> c174e6d6979a04 Dmitry Monakhov    2014-08-27  4444  			if (epos > new_size)
> c174e6d6979a04 Dmitry Monakhov    2014-08-27  4445  				epos = new_size;
> c174e6d6979a04 Dmitry Monakhov    2014-08-27  4446  			if (ext4_update_inode_size(inode, epos) & 0x1)
> c174e6d6979a04 Dmitry Monakhov    2014-08-27  4447  				inode->i_mtime = inode->i_ctime;
> c174e6d6979a04 Dmitry Monakhov    2014-08-27  4448  		}
> 4209ae12b12265 Harshad Shirwadkar 2020-04-26  4449  		ret2 = ext4_mark_inode_dirty(handle, inode);
> c894aa97577e47 Eryu Guan          2017-12-03  4450  		ext4_update_inode_fsync_trans(handle, inode, 1);
> 4209ae12b12265 Harshad Shirwadkar 2020-04-26  4451  		ret3 = ext4_journal_stop(handle);
> 4209ae12b12265 Harshad Shirwadkar 2020-04-26  4452  		ret2 = ret3 ? ret3 : ret2;
> 4209ae12b12265 Harshad Shirwadkar 2020-04-26  4453  		if (unlikely(ret2))
> 0e8b6879f3c234 Lukas Czerner      2014-03-18  4454  			break;
> 0e8b6879f3c234 Lukas Czerner      2014-03-18  4455  	}
> 3258386aba670e Eric Whitney       2021-01-13 @4456  	if (ret == -ENOSPC && ext4_should_retry_alloc(inode->i_sb, &retries))
>                                                             ^^^^^^^^^^^^^^
> 
> 0e8b6879f3c234 Lukas Czerner      2014-03-18  4457  		goto retry;
> 0e8b6879f3c234 Lukas Czerner      2014-03-18  4458  
> 0e8b6879f3c234 Lukas Czerner      2014-03-18  4459  	return ret > 0 ? ret2 : ret;
> 0e8b6879f3c234 Lukas Czerner      2014-03-18  4460  }
> 
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org



  reply	other threads:[~2021-02-19 16:09 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-19  8:28 [ext4:dev 6/8] fs/ext4/extents.c:4456 ext4_alloc_file_blocks() error: uninitialized symbol 'ret' Dan Carpenter
2021-02-19  8:28 ` Dan Carpenter
2021-02-19  8:28 ` Dan Carpenter
2021-02-19 16:08 ` Eric Whitney [this message]
  -- strict thread matches above, loose matches on Subject: below --
2021-02-19  3:43 kernel test robot

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=20210219160804.GA21133@localhost.localdomain \
    --to=enwlinux@gmail.com \
    --cc=dan.carpenter@oracle.com \
    --cc=kbuild-all@lists.01.org \
    --cc=kbuild@lists.01.org \
    --cc=linux-ext4@vger.kernel.org \
    --cc=lkp@intel.com \
    --cc=tytso@mit.edu \
    /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.