All of lore.kernel.org
 help / color / mirror / Atom feed
* fs/ext4/inode.c:5477:3: warning: Identical inner 'if' condition is always true. [identicalInnerCondition]
@ 2021-08-04 21:36 kernel test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2021-08-04 21:36 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 20833 bytes --]

CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Harshad Shirwadkar <harshadshirwadkar@gmail.com>
CC: "Theodore Ts'o" <tytso@mit.edu>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   d5ad8ec3cfb56a017de6a784835666475b4be349
commit: aa75f4d3daaeb1389b9cce9d6b84401eaf228d4e ext4: main fast-commit commit path
date:   10 months ago
:::::: branch date: 29 hours ago
:::::: commit date: 10 months ago
compiler: nds32le-linux-gcc (GCC) 10.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>


cppcheck possible warnings: (new ones prefixed by >>, may not real problems)

>> fs/ext4/inode.c:5477:3: warning: Identical inner 'if' condition is always true. [identicalInnerCondition]
     ext4_std_error(inode->i_sb, error);
     ^
   fs/ext4/inode.c:5476:7: note: outer condition: error
    if  (error)
         ^
   fs/ext4/inode.c:5477:3: note: identical inner condition: error
     ext4_std_error(inode->i_sb, error);
     ^

vim +/if +5477 fs/ext4/inode.c

53e872681fed6a Jan Kara           2012-12-25  5243  
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5244  /*
617ba13b31fbf5 Mingming Cao       2006-10-11  5245   * ext4_setattr()
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5246   *
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5247   * Called from notify_change.
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5248   *
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5249   * We want to trap VFS attempts to truncate the file as soon as
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5250   * possible.  In particular, we want to make sure that when the VFS
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5251   * shrinks i_size, we put the inode on the orphan list and modify
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5252   * i_disksize immediately, so that during the subsequent flushing of
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5253   * dirty pages and freeing of disk blocks, we can guarantee that any
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5254   * commit will leave the blocks being flushed in an unused state on
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5255   * disk.  (On recovery, the inode will get truncated and the blocks will
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5256   * be freed, so we have a strong guarantee that no future commit will
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5257   * leave these blocks visible to the user.)
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5258   *
678aaf481496b0 Jan Kara           2008-07-11  5259   * Another thing we have to assure is that if we are in ordered mode
678aaf481496b0 Jan Kara           2008-07-11  5260   * and inode is still attached to the committing transaction, we must
678aaf481496b0 Jan Kara           2008-07-11  5261   * we start writeout of all the dirty pages which are being truncated.
678aaf481496b0 Jan Kara           2008-07-11  5262   * This way we are sure that all the data written in the previous
678aaf481496b0 Jan Kara           2008-07-11  5263   * transaction are already on disk (truncate waits for pages under
678aaf481496b0 Jan Kara           2008-07-11  5264   * writeback).
678aaf481496b0 Jan Kara           2008-07-11  5265   *
678aaf481496b0 Jan Kara           2008-07-11  5266   * Called with inode->i_mutex down.
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5267   */
617ba13b31fbf5 Mingming Cao       2006-10-11  5268  int ext4_setattr(struct dentry *dentry, struct iattr *attr)
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5269  {
2b0143b5c986be David Howells      2015-03-17  5270  	struct inode *inode = d_inode(dentry);
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5271  	int error, rc = 0;
3d287de3b82822 Dmitry Monakhov    2010-10-27  5272  	int orphan = 0;
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5273  	const unsigned int ia_valid = attr->ia_valid;
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5274  
0db1ff222d40f1 Theodore Ts'o      2017-02-05  5275  	if (unlikely(ext4_forced_shutdown(EXT4_SB(inode->i_sb))))
0db1ff222d40f1 Theodore Ts'o      2017-02-05  5276  		return -EIO;
0db1ff222d40f1 Theodore Ts'o      2017-02-05  5277  
02b016ca7f9922 Theodore Ts'o      2019-06-09  5278  	if (unlikely(IS_IMMUTABLE(inode)))
02b016ca7f9922 Theodore Ts'o      2019-06-09  5279  		return -EPERM;
02b016ca7f9922 Theodore Ts'o      2019-06-09  5280  
02b016ca7f9922 Theodore Ts'o      2019-06-09  5281  	if (unlikely(IS_APPEND(inode) &&
02b016ca7f9922 Theodore Ts'o      2019-06-09  5282  		     (ia_valid & (ATTR_MODE | ATTR_UID |
02b016ca7f9922 Theodore Ts'o      2019-06-09  5283  				  ATTR_GID | ATTR_TIMES_SET))))
02b016ca7f9922 Theodore Ts'o      2019-06-09  5284  		return -EPERM;
02b016ca7f9922 Theodore Ts'o      2019-06-09  5285  
31051c85b5e2aa Jan Kara           2016-05-26  5286  	error = setattr_prepare(dentry, attr);
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5287  	if (error)
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5288  		return error;
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5289  
3ce2b8ddd84d50 Eric Biggers       2017-10-18  5290  	error = fscrypt_prepare_setattr(dentry, attr);
3ce2b8ddd84d50 Eric Biggers       2017-10-18  5291  	if (error)
3ce2b8ddd84d50 Eric Biggers       2017-10-18  5292  		return error;
3ce2b8ddd84d50 Eric Biggers       2017-10-18  5293  
c93d8f88580921 Eric Biggers       2019-07-22  5294  	error = fsverity_prepare_setattr(dentry, attr);
c93d8f88580921 Eric Biggers       2019-07-22  5295  	if (error)
c93d8f88580921 Eric Biggers       2019-07-22  5296  		return error;
c93d8f88580921 Eric Biggers       2019-07-22  5297  
a7cdadee0e8948 Jan Kara           2015-06-29  5298  	if (is_quota_modification(inode, attr)) {
a7cdadee0e8948 Jan Kara           2015-06-29  5299  		error = dquot_initialize(inode);
a7cdadee0e8948 Jan Kara           2015-06-29  5300  		if (error)
a7cdadee0e8948 Jan Kara           2015-06-29  5301  			return error;
a7cdadee0e8948 Jan Kara           2015-06-29  5302  	}
aa75f4d3daaeb1 Harshad Shirwadkar 2020-10-15  5303  	ext4_fc_start_update(inode);
08cefc7ab839cf Eric W. Biederman  2012-02-07  5304  	if ((ia_valid & ATTR_UID && !uid_eq(attr->ia_uid, inode->i_uid)) ||
08cefc7ab839cf Eric W. Biederman  2012-02-07  5305  	    (ia_valid & ATTR_GID && !gid_eq(attr->ia_gid, inode->i_gid))) {
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5306  		handle_t *handle;
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5307  
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5308  		/* (user+group)*(old+new) structure, inode write (sb,
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5309  		 * inode block, ? - but truncate inode update has it) */
9924a92a8c2175 Theodore Ts'o      2013-02-08  5310  		handle = ext4_journal_start(inode, EXT4_HT_QUOTA,
9924a92a8c2175 Theodore Ts'o      2013-02-08  5311  			(EXT4_MAXQUOTAS_INIT_BLOCKS(inode->i_sb) +
194074acacebc1 Dmitry Monakhov    2009-12-08  5312  			 EXT4_MAXQUOTAS_DEL_BLOCKS(inode->i_sb)) + 3);
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5313  		if (IS_ERR(handle)) {
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5314  			error = PTR_ERR(handle);
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5315  			goto err_out;
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5316  		}
7a9ca53aea10ad Tahsin Erdogan     2017-06-22  5317  
7a9ca53aea10ad Tahsin Erdogan     2017-06-22  5318  		/* dquot_transfer() calls back ext4_get_inode_usage() which
7a9ca53aea10ad Tahsin Erdogan     2017-06-22  5319  		 * counts xattr inode references.
7a9ca53aea10ad Tahsin Erdogan     2017-06-22  5320  		 */
7a9ca53aea10ad Tahsin Erdogan     2017-06-22  5321  		down_read(&EXT4_I(inode)->xattr_sem);
b43fa8284d7790 Christoph Hellwig  2010-03-03  5322  		error = dquot_transfer(inode, attr);
7a9ca53aea10ad Tahsin Erdogan     2017-06-22  5323  		up_read(&EXT4_I(inode)->xattr_sem);
7a9ca53aea10ad Tahsin Erdogan     2017-06-22  5324  
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5325  		if (error) {
617ba13b31fbf5 Mingming Cao       2006-10-11  5326  			ext4_journal_stop(handle);
aa75f4d3daaeb1 Harshad Shirwadkar 2020-10-15  5327  			ext4_fc_stop_update(inode);
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5328  			return error;
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5329  		}
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5330  		/* Update corresponding info in inode so that everything is in
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5331  		 * one transaction */
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5332  		if (attr->ia_valid & ATTR_UID)
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5333  			inode->i_uid = attr->ia_uid;
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5334  		if (attr->ia_valid & ATTR_GID)
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5335  			inode->i_gid = attr->ia_gid;
617ba13b31fbf5 Mingming Cao       2006-10-11  5336  		error = ext4_mark_inode_dirty(handle, inode);
617ba13b31fbf5 Mingming Cao       2006-10-11  5337  		ext4_journal_stop(handle);
4209ae12b12265 Harshad Shirwadkar 2020-04-26  5338  		if (unlikely(error))
4209ae12b12265 Harshad Shirwadkar 2020-04-26  5339  			return error;
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5340  	}
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5341  
3da40c7b089810 Josef Bacik        2015-06-22  5342  	if (attr->ia_valid & ATTR_SIZE) {
5208386c501276 Jan Kara           2013-08-17  5343  		handle_t *handle;
3da40c7b089810 Josef Bacik        2015-06-22  5344  		loff_t oldsize = inode->i_size;
b9c1c26739ec2d Jan Kara           2019-05-30  5345  		int shrink = (attr->ia_size < inode->i_size);
562c72aa57c36b Christoph Hellwig  2011-06-24  5346  
12e9b892002d9a Dmitry Monakhov    2010-05-16  5347  		if (!(ext4_test_inode_flag(inode, EXT4_INODE_EXTENTS))) {
e2b4657453c0d5 Eric Sandeen       2008-01-28  5348  			struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
e2b4657453c0d5 Eric Sandeen       2008-01-28  5349  
aa75f4d3daaeb1 Harshad Shirwadkar 2020-10-15  5350  			if (attr->ia_size > sbi->s_bitmap_maxbytes) {
aa75f4d3daaeb1 Harshad Shirwadkar 2020-10-15  5351  				ext4_fc_stop_update(inode);
0c095c7f113e9f Theodore Ts'o      2010-07-27  5352  				return -EFBIG;
e2b4657453c0d5 Eric Sandeen       2008-01-28  5353  			}
aa75f4d3daaeb1 Harshad Shirwadkar 2020-10-15  5354  		}
aa75f4d3daaeb1 Harshad Shirwadkar 2020-10-15  5355  		if (!S_ISREG(inode->i_mode)) {
aa75f4d3daaeb1 Harshad Shirwadkar 2020-10-15  5356  			ext4_fc_stop_update(inode);
3da40c7b089810 Josef Bacik        2015-06-22  5357  			return -EINVAL;
aa75f4d3daaeb1 Harshad Shirwadkar 2020-10-15  5358  		}
dff6efc326a4d5 Christoph Hellwig  2013-11-19  5359  
dff6efc326a4d5 Christoph Hellwig  2013-11-19  5360  		if (IS_I_VERSION(inode) && attr->ia_size != inode->i_size)
dff6efc326a4d5 Christoph Hellwig  2013-11-19  5361  			inode_inc_iversion(inode);
dff6efc326a4d5 Christoph Hellwig  2013-11-19  5362  
b9c1c26739ec2d Jan Kara           2019-05-30  5363  		if (shrink) {
b9c1c26739ec2d Jan Kara           2019-05-30  5364  			if (ext4_should_order_data(inode)) {
5208386c501276 Jan Kara           2013-08-17  5365  				error = ext4_begin_ordered_truncate(inode,
5208386c501276 Jan Kara           2013-08-17  5366  							    attr->ia_size);
5208386c501276 Jan Kara           2013-08-17  5367  				if (error)
5208386c501276 Jan Kara           2013-08-17  5368  					goto err_out;
5208386c501276 Jan Kara           2013-08-17  5369  			}
b9c1c26739ec2d Jan Kara           2019-05-30  5370  			/*
b9c1c26739ec2d Jan Kara           2019-05-30  5371  			 * Blocks are going to be removed from the inode. Wait
b9c1c26739ec2d Jan Kara           2019-05-30  5372  			 * for dio in flight.
b9c1c26739ec2d Jan Kara           2019-05-30  5373  			 */
b9c1c26739ec2d Jan Kara           2019-05-30  5374  			inode_dio_wait(inode);
b9c1c26739ec2d Jan Kara           2019-05-30  5375  		}
b9c1c26739ec2d Jan Kara           2019-05-30  5376  
b9c1c26739ec2d Jan Kara           2019-05-30  5377  		down_write(&EXT4_I(inode)->i_mmap_sem);
b9c1c26739ec2d Jan Kara           2019-05-30  5378  
b9c1c26739ec2d Jan Kara           2019-05-30  5379  		rc = ext4_break_layouts(inode);
b9c1c26739ec2d Jan Kara           2019-05-30  5380  		if (rc) {
b9c1c26739ec2d Jan Kara           2019-05-30  5381  			up_write(&EXT4_I(inode)->i_mmap_sem);
aa75f4d3daaeb1 Harshad Shirwadkar 2020-10-15  5382  			goto err_out;
b9c1c26739ec2d Jan Kara           2019-05-30  5383  		}
b9c1c26739ec2d Jan Kara           2019-05-30  5384  
3da40c7b089810 Josef Bacik        2015-06-22  5385  		if (attr->ia_size != inode->i_size) {
9924a92a8c2175 Theodore Ts'o      2013-02-08  5386  			handle = ext4_journal_start(inode, EXT4_HT_INODE, 3);
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5387  			if (IS_ERR(handle)) {
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5388  				error = PTR_ERR(handle);
b9c1c26739ec2d Jan Kara           2019-05-30  5389  				goto out_mmap_sem;
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5390  			}
3da40c7b089810 Josef Bacik        2015-06-22  5391  			if (ext4_handle_valid(handle) && shrink) {
617ba13b31fbf5 Mingming Cao       2006-10-11  5392  				error = ext4_orphan_add(handle, inode);
3d287de3b82822 Dmitry Monakhov    2010-10-27  5393  				orphan = 1;
3d287de3b82822 Dmitry Monakhov    2010-10-27  5394  			}
911af577de4e44 Eryu Guan          2015-07-28  5395  			/*
911af577de4e44 Eryu Guan          2015-07-28  5396  			 * Update c/mtime on truncate up, ext4_truncate() will
911af577de4e44 Eryu Guan          2015-07-28  5397  			 * update c/mtime in shrink case below
911af577de4e44 Eryu Guan          2015-07-28  5398  			 */
911af577de4e44 Eryu Guan          2015-07-28  5399  			if (!shrink) {
eeca7ea1baa939 Deepa Dinamani     2016-11-14  5400  				inode->i_mtime = current_time(inode);
911af577de4e44 Eryu Guan          2015-07-28  5401  				inode->i_ctime = inode->i_mtime;
911af577de4e44 Eryu Guan          2015-07-28  5402  			}
aa75f4d3daaeb1 Harshad Shirwadkar 2020-10-15  5403  
aa75f4d3daaeb1 Harshad Shirwadkar 2020-10-15  5404  			if (shrink)
aa75f4d3daaeb1 Harshad Shirwadkar 2020-10-15  5405  				ext4_fc_track_range(inode,
aa75f4d3daaeb1 Harshad Shirwadkar 2020-10-15  5406  					(attr->ia_size > 0 ? attr->ia_size - 1 : 0) >>
aa75f4d3daaeb1 Harshad Shirwadkar 2020-10-15  5407  					inode->i_sb->s_blocksize_bits,
aa75f4d3daaeb1 Harshad Shirwadkar 2020-10-15  5408  					(oldsize > 0 ? oldsize - 1 : 0) >>
aa75f4d3daaeb1 Harshad Shirwadkar 2020-10-15  5409  					inode->i_sb->s_blocksize_bits);
aa75f4d3daaeb1 Harshad Shirwadkar 2020-10-15  5410  			else
aa75f4d3daaeb1 Harshad Shirwadkar 2020-10-15  5411  				ext4_fc_track_range(
aa75f4d3daaeb1 Harshad Shirwadkar 2020-10-15  5412  					inode,
aa75f4d3daaeb1 Harshad Shirwadkar 2020-10-15  5413  					(oldsize > 0 ? oldsize - 1 : oldsize) >>
aa75f4d3daaeb1 Harshad Shirwadkar 2020-10-15  5414  					inode->i_sb->s_blocksize_bits,
aa75f4d3daaeb1 Harshad Shirwadkar 2020-10-15  5415  					(attr->ia_size > 0 ? attr->ia_size - 1 : 0) >>
aa75f4d3daaeb1 Harshad Shirwadkar 2020-10-15  5416  					inode->i_sb->s_blocksize_bits);
aa75f4d3daaeb1 Harshad Shirwadkar 2020-10-15  5417  
90e775b71ac4e6 Jan Kara           2013-08-17  5418  			down_write(&EXT4_I(inode)->i_data_sem);
617ba13b31fbf5 Mingming Cao       2006-10-11  5419  			EXT4_I(inode)->i_disksize = attr->ia_size;
617ba13b31fbf5 Mingming Cao       2006-10-11  5420  			rc = ext4_mark_inode_dirty(handle, inode);
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5421  			if (!error)
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5422  				error = rc;
90e775b71ac4e6 Jan Kara           2013-08-17  5423  			/*
90e775b71ac4e6 Jan Kara           2013-08-17  5424  			 * We have to update i_size under i_data_sem together
90e775b71ac4e6 Jan Kara           2013-08-17  5425  			 * with i_disksize to avoid races with writeback code
90e775b71ac4e6 Jan Kara           2013-08-17  5426  			 * running ext4_wb_update_i_disksize().
90e775b71ac4e6 Jan Kara           2013-08-17  5427  			 */
90e775b71ac4e6 Jan Kara           2013-08-17  5428  			if (!error)
90e775b71ac4e6 Jan Kara           2013-08-17  5429  				i_size_write(inode, attr->ia_size);
90e775b71ac4e6 Jan Kara           2013-08-17  5430  			up_write(&EXT4_I(inode)->i_data_sem);
617ba13b31fbf5 Mingming Cao       2006-10-11  5431  			ext4_journal_stop(handle);
b9c1c26739ec2d Jan Kara           2019-05-30  5432  			if (error)
b9c1c26739ec2d Jan Kara           2019-05-30  5433  				goto out_mmap_sem;
82a25b027ca48d Jan Kara           2019-05-23  5434  			if (!shrink) {
b9c1c26739ec2d Jan Kara           2019-05-30  5435  				pagecache_isize_extended(inode, oldsize,
b9c1c26739ec2d Jan Kara           2019-05-30  5436  							 inode->i_size);
b9c1c26739ec2d Jan Kara           2019-05-30  5437  			} else if (ext4_should_journal_data(inode)) {
82a25b027ca48d Jan Kara           2019-05-23  5438  				ext4_wait_for_tail_page_commit(inode);
b9c1c26739ec2d Jan Kara           2019-05-30  5439  			}
430657b6be896d Ross Zwisler       2018-07-29  5440  		}
430657b6be896d Ross Zwisler       2018-07-29  5441  
53e872681fed6a Jan Kara           2012-12-25  5442  		/*
53e872681fed6a Jan Kara           2012-12-25  5443  		 * Truncate pagecache after we've waited for commit
53e872681fed6a Jan Kara           2012-12-25  5444  		 * in data=journal mode to make pages freeable.
53e872681fed6a Jan Kara           2012-12-25  5445  		 */
7caef26767c172 Kirill A. Shutemov 2013-09-12  5446  		truncate_pagecache(inode, inode->i_size);
b9c1c26739ec2d Jan Kara           2019-05-30  5447  		/*
b9c1c26739ec2d Jan Kara           2019-05-30  5448  		 * Call ext4_truncate() even if i_size didn't change to
b9c1c26739ec2d Jan Kara           2019-05-30  5449  		 * truncate possible preallocated blocks.
b9c1c26739ec2d Jan Kara           2019-05-30  5450  		 */
b9c1c26739ec2d Jan Kara           2019-05-30  5451  		if (attr->ia_size <= oldsize) {
2c98eb5ea24976 Theodore Ts'o      2016-11-13  5452  			rc = ext4_truncate(inode);
2c98eb5ea24976 Theodore Ts'o      2016-11-13  5453  			if (rc)
2c98eb5ea24976 Theodore Ts'o      2016-11-13  5454  				error = rc;
2c98eb5ea24976 Theodore Ts'o      2016-11-13  5455  		}
b9c1c26739ec2d Jan Kara           2019-05-30  5456  out_mmap_sem:
ea3d7209ca01da Jan Kara           2015-12-07  5457  		up_write(&EXT4_I(inode)->i_mmap_sem);
3da40c7b089810 Josef Bacik        2015-06-22  5458  	}
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5459  
2c98eb5ea24976 Theodore Ts'o      2016-11-13  5460  	if (!error) {
1025774ce411f2 Christoph Hellwig  2010-06-04  5461  		setattr_copy(inode, attr);
1025774ce411f2 Christoph Hellwig  2010-06-04  5462  		mark_inode_dirty(inode);
1025774ce411f2 Christoph Hellwig  2010-06-04  5463  	}
1025774ce411f2 Christoph Hellwig  2010-06-04  5464  
1025774ce411f2 Christoph Hellwig  2010-06-04  5465  	/*
1025774ce411f2 Christoph Hellwig  2010-06-04  5466  	 * If the call to ext4_truncate failed to get a transaction handle at
1025774ce411f2 Christoph Hellwig  2010-06-04  5467  	 * all, we need to clean up the in-core orphan list manually.
1025774ce411f2 Christoph Hellwig  2010-06-04  5468  	 */
3d287de3b82822 Dmitry Monakhov    2010-10-27  5469  	if (orphan && inode->i_nlink)
617ba13b31fbf5 Mingming Cao       2006-10-11  5470  		ext4_orphan_del(NULL, inode);
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5471  
2c98eb5ea24976 Theodore Ts'o      2016-11-13  5472  	if (!error && (ia_valid & ATTR_MODE))
64e178a7118b1c Christoph Hellwig  2013-12-20  5473  		rc = posix_acl_chmod(inode, inode->i_mode);
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5474  
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5475  err_out:
aa75f4d3daaeb1 Harshad Shirwadkar 2020-10-15  5476  	if  (error)
617ba13b31fbf5 Mingming Cao       2006-10-11 @5477  		ext4_std_error(inode->i_sb, error);
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5478  	if (!error)
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5479  		error = rc;
aa75f4d3daaeb1 Harshad Shirwadkar 2020-10-15  5480  	ext4_fc_stop_update(inode);
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5481  	return error;
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5482  }
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5483  

:::::: The code at line 5477 was first introduced by commit
:::::: 617ba13b31fbf505cc21799826639ef24ed94af0 [PATCH] ext4: rename ext4 symbols to avoid duplication of ext3 symbols

:::::: TO: Mingming Cao <cmm@us.ibm.com>
:::::: CC: Linus Torvalds <torvalds@g5.osdl.org>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

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

* fs/ext4/inode.c:5477:3: warning: Identical inner 'if' condition is always true. [identicalInnerCondition]
@ 2021-08-23 11:35 kernel test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2021-08-23 11:35 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 21193 bytes --]

CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Harshad Shirwadkar <harshadshirwadkar@gmail.com>
CC: "Theodore Ts'o" <tytso@mit.edu>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   e22ce8eb631bdc47a4a4ea7ecf4e4ba499db4f93
commit: aa75f4d3daaeb1389b9cce9d6b84401eaf228d4e ext4: main fast-commit commit path
date:   10 months ago
:::::: branch date: 14 hours ago
:::::: commit date: 10 months ago
compiler: hppa-linux-gcc (GCC) 11.2.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>


cppcheck possible warnings: (new ones prefixed by >>, may not real problems)

>> fs/ext4/inode.c:5477:3: warning: Identical inner 'if' condition is always true. [identicalInnerCondition]
     ext4_std_error(inode->i_sb, error);
     ^
   fs/ext4/inode.c:5476:7: note: outer condition: error
    if  (error)
         ^
   fs/ext4/inode.c:5477:3: note: identical inner condition: error
     ext4_std_error(inode->i_sb, error);
     ^
>> fs/ext4/super.c:3109:5: warning: Identical inner 'if' condition is always true. [identicalInnerCondition]
       ext4_std_error(inode->i_sb, ret);
       ^
   fs/ext4/super.c:3108:8: note: outer condition: ret
      if (ret)
          ^
   fs/ext4/super.c:3109:5: note: identical inner condition: ret
       ext4_std_error(inode->i_sb, ret);
       ^

vim +/if +5477 fs/ext4/inode.c

53e872681fed6a Jan Kara           2012-12-25  5243  
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5244  /*
617ba13b31fbf5 Mingming Cao       2006-10-11  5245   * ext4_setattr()
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5246   *
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5247   * Called from notify_change.
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5248   *
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5249   * We want to trap VFS attempts to truncate the file as soon as
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5250   * possible.  In particular, we want to make sure that when the VFS
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5251   * shrinks i_size, we put the inode on the orphan list and modify
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5252   * i_disksize immediately, so that during the subsequent flushing of
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5253   * dirty pages and freeing of disk blocks, we can guarantee that any
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5254   * commit will leave the blocks being flushed in an unused state on
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5255   * disk.  (On recovery, the inode will get truncated and the blocks will
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5256   * be freed, so we have a strong guarantee that no future commit will
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5257   * leave these blocks visible to the user.)
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5258   *
678aaf481496b0 Jan Kara           2008-07-11  5259   * Another thing we have to assure is that if we are in ordered mode
678aaf481496b0 Jan Kara           2008-07-11  5260   * and inode is still attached to the committing transaction, we must
678aaf481496b0 Jan Kara           2008-07-11  5261   * we start writeout of all the dirty pages which are being truncated.
678aaf481496b0 Jan Kara           2008-07-11  5262   * This way we are sure that all the data written in the previous
678aaf481496b0 Jan Kara           2008-07-11  5263   * transaction are already on disk (truncate waits for pages under
678aaf481496b0 Jan Kara           2008-07-11  5264   * writeback).
678aaf481496b0 Jan Kara           2008-07-11  5265   *
678aaf481496b0 Jan Kara           2008-07-11  5266   * Called with inode->i_mutex down.
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5267   */
617ba13b31fbf5 Mingming Cao       2006-10-11  5268  int ext4_setattr(struct dentry *dentry, struct iattr *attr)
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5269  {
2b0143b5c986be David Howells      2015-03-17  5270  	struct inode *inode = d_inode(dentry);
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5271  	int error, rc = 0;
3d287de3b82822 Dmitry Monakhov    2010-10-27  5272  	int orphan = 0;
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5273  	const unsigned int ia_valid = attr->ia_valid;
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5274  
0db1ff222d40f1 Theodore Ts'o      2017-02-05  5275  	if (unlikely(ext4_forced_shutdown(EXT4_SB(inode->i_sb))))
0db1ff222d40f1 Theodore Ts'o      2017-02-05  5276  		return -EIO;
0db1ff222d40f1 Theodore Ts'o      2017-02-05  5277  
02b016ca7f9922 Theodore Ts'o      2019-06-09  5278  	if (unlikely(IS_IMMUTABLE(inode)))
02b016ca7f9922 Theodore Ts'o      2019-06-09  5279  		return -EPERM;
02b016ca7f9922 Theodore Ts'o      2019-06-09  5280  
02b016ca7f9922 Theodore Ts'o      2019-06-09  5281  	if (unlikely(IS_APPEND(inode) &&
02b016ca7f9922 Theodore Ts'o      2019-06-09  5282  		     (ia_valid & (ATTR_MODE | ATTR_UID |
02b016ca7f9922 Theodore Ts'o      2019-06-09  5283  				  ATTR_GID | ATTR_TIMES_SET))))
02b016ca7f9922 Theodore Ts'o      2019-06-09  5284  		return -EPERM;
02b016ca7f9922 Theodore Ts'o      2019-06-09  5285  
31051c85b5e2aa Jan Kara           2016-05-26  5286  	error = setattr_prepare(dentry, attr);
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5287  	if (error)
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5288  		return error;
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5289  
3ce2b8ddd84d50 Eric Biggers       2017-10-18  5290  	error = fscrypt_prepare_setattr(dentry, attr);
3ce2b8ddd84d50 Eric Biggers       2017-10-18  5291  	if (error)
3ce2b8ddd84d50 Eric Biggers       2017-10-18  5292  		return error;
3ce2b8ddd84d50 Eric Biggers       2017-10-18  5293  
c93d8f88580921 Eric Biggers       2019-07-22  5294  	error = fsverity_prepare_setattr(dentry, attr);
c93d8f88580921 Eric Biggers       2019-07-22  5295  	if (error)
c93d8f88580921 Eric Biggers       2019-07-22  5296  		return error;
c93d8f88580921 Eric Biggers       2019-07-22  5297  
a7cdadee0e8948 Jan Kara           2015-06-29  5298  	if (is_quota_modification(inode, attr)) {
a7cdadee0e8948 Jan Kara           2015-06-29  5299  		error = dquot_initialize(inode);
a7cdadee0e8948 Jan Kara           2015-06-29  5300  		if (error)
a7cdadee0e8948 Jan Kara           2015-06-29  5301  			return error;
a7cdadee0e8948 Jan Kara           2015-06-29  5302  	}
aa75f4d3daaeb1 Harshad Shirwadkar 2020-10-15  5303  	ext4_fc_start_update(inode);
08cefc7ab839cf Eric W. Biederman  2012-02-07  5304  	if ((ia_valid & ATTR_UID && !uid_eq(attr->ia_uid, inode->i_uid)) ||
08cefc7ab839cf Eric W. Biederman  2012-02-07  5305  	    (ia_valid & ATTR_GID && !gid_eq(attr->ia_gid, inode->i_gid))) {
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5306  		handle_t *handle;
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5307  
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5308  		/* (user+group)*(old+new) structure, inode write (sb,
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5309  		 * inode block, ? - but truncate inode update has it) */
9924a92a8c2175 Theodore Ts'o      2013-02-08  5310  		handle = ext4_journal_start(inode, EXT4_HT_QUOTA,
9924a92a8c2175 Theodore Ts'o      2013-02-08  5311  			(EXT4_MAXQUOTAS_INIT_BLOCKS(inode->i_sb) +
194074acacebc1 Dmitry Monakhov    2009-12-08  5312  			 EXT4_MAXQUOTAS_DEL_BLOCKS(inode->i_sb)) + 3);
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5313  		if (IS_ERR(handle)) {
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5314  			error = PTR_ERR(handle);
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5315  			goto err_out;
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5316  		}
7a9ca53aea10ad Tahsin Erdogan     2017-06-22  5317  
7a9ca53aea10ad Tahsin Erdogan     2017-06-22  5318  		/* dquot_transfer() calls back ext4_get_inode_usage() which
7a9ca53aea10ad Tahsin Erdogan     2017-06-22  5319  		 * counts xattr inode references.
7a9ca53aea10ad Tahsin Erdogan     2017-06-22  5320  		 */
7a9ca53aea10ad Tahsin Erdogan     2017-06-22  5321  		down_read(&EXT4_I(inode)->xattr_sem);
b43fa8284d7790 Christoph Hellwig  2010-03-03  5322  		error = dquot_transfer(inode, attr);
7a9ca53aea10ad Tahsin Erdogan     2017-06-22  5323  		up_read(&EXT4_I(inode)->xattr_sem);
7a9ca53aea10ad Tahsin Erdogan     2017-06-22  5324  
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5325  		if (error) {
617ba13b31fbf5 Mingming Cao       2006-10-11  5326  			ext4_journal_stop(handle);
aa75f4d3daaeb1 Harshad Shirwadkar 2020-10-15  5327  			ext4_fc_stop_update(inode);
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5328  			return error;
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5329  		}
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5330  		/* Update corresponding info in inode so that everything is in
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5331  		 * one transaction */
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5332  		if (attr->ia_valid & ATTR_UID)
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5333  			inode->i_uid = attr->ia_uid;
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5334  		if (attr->ia_valid & ATTR_GID)
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5335  			inode->i_gid = attr->ia_gid;
617ba13b31fbf5 Mingming Cao       2006-10-11  5336  		error = ext4_mark_inode_dirty(handle, inode);
617ba13b31fbf5 Mingming Cao       2006-10-11  5337  		ext4_journal_stop(handle);
4209ae12b12265 Harshad Shirwadkar 2020-04-26  5338  		if (unlikely(error))
4209ae12b12265 Harshad Shirwadkar 2020-04-26  5339  			return error;
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5340  	}
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5341  
3da40c7b089810 Josef Bacik        2015-06-22  5342  	if (attr->ia_valid & ATTR_SIZE) {
5208386c501276 Jan Kara           2013-08-17  5343  		handle_t *handle;
3da40c7b089810 Josef Bacik        2015-06-22  5344  		loff_t oldsize = inode->i_size;
b9c1c26739ec2d Jan Kara           2019-05-30  5345  		int shrink = (attr->ia_size < inode->i_size);
562c72aa57c36b Christoph Hellwig  2011-06-24  5346  
12e9b892002d9a Dmitry Monakhov    2010-05-16  5347  		if (!(ext4_test_inode_flag(inode, EXT4_INODE_EXTENTS))) {
e2b4657453c0d5 Eric Sandeen       2008-01-28  5348  			struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
e2b4657453c0d5 Eric Sandeen       2008-01-28  5349  
aa75f4d3daaeb1 Harshad Shirwadkar 2020-10-15  5350  			if (attr->ia_size > sbi->s_bitmap_maxbytes) {
aa75f4d3daaeb1 Harshad Shirwadkar 2020-10-15  5351  				ext4_fc_stop_update(inode);
0c095c7f113e9f Theodore Ts'o      2010-07-27  5352  				return -EFBIG;
e2b4657453c0d5 Eric Sandeen       2008-01-28  5353  			}
aa75f4d3daaeb1 Harshad Shirwadkar 2020-10-15  5354  		}
aa75f4d3daaeb1 Harshad Shirwadkar 2020-10-15  5355  		if (!S_ISREG(inode->i_mode)) {
aa75f4d3daaeb1 Harshad Shirwadkar 2020-10-15  5356  			ext4_fc_stop_update(inode);
3da40c7b089810 Josef Bacik        2015-06-22  5357  			return -EINVAL;
aa75f4d3daaeb1 Harshad Shirwadkar 2020-10-15  5358  		}
dff6efc326a4d5 Christoph Hellwig  2013-11-19  5359  
dff6efc326a4d5 Christoph Hellwig  2013-11-19  5360  		if (IS_I_VERSION(inode) && attr->ia_size != inode->i_size)
dff6efc326a4d5 Christoph Hellwig  2013-11-19  5361  			inode_inc_iversion(inode);
dff6efc326a4d5 Christoph Hellwig  2013-11-19  5362  
b9c1c26739ec2d Jan Kara           2019-05-30  5363  		if (shrink) {
b9c1c26739ec2d Jan Kara           2019-05-30  5364  			if (ext4_should_order_data(inode)) {
5208386c501276 Jan Kara           2013-08-17  5365  				error = ext4_begin_ordered_truncate(inode,
5208386c501276 Jan Kara           2013-08-17  5366  							    attr->ia_size);
5208386c501276 Jan Kara           2013-08-17  5367  				if (error)
5208386c501276 Jan Kara           2013-08-17  5368  					goto err_out;
5208386c501276 Jan Kara           2013-08-17  5369  			}
b9c1c26739ec2d Jan Kara           2019-05-30  5370  			/*
b9c1c26739ec2d Jan Kara           2019-05-30  5371  			 * Blocks are going to be removed from the inode. Wait
b9c1c26739ec2d Jan Kara           2019-05-30  5372  			 * for dio in flight.
b9c1c26739ec2d Jan Kara           2019-05-30  5373  			 */
b9c1c26739ec2d Jan Kara           2019-05-30  5374  			inode_dio_wait(inode);
b9c1c26739ec2d Jan Kara           2019-05-30  5375  		}
b9c1c26739ec2d Jan Kara           2019-05-30  5376  
b9c1c26739ec2d Jan Kara           2019-05-30  5377  		down_write(&EXT4_I(inode)->i_mmap_sem);
b9c1c26739ec2d Jan Kara           2019-05-30  5378  
b9c1c26739ec2d Jan Kara           2019-05-30  5379  		rc = ext4_break_layouts(inode);
b9c1c26739ec2d Jan Kara           2019-05-30  5380  		if (rc) {
b9c1c26739ec2d Jan Kara           2019-05-30  5381  			up_write(&EXT4_I(inode)->i_mmap_sem);
aa75f4d3daaeb1 Harshad Shirwadkar 2020-10-15  5382  			goto err_out;
b9c1c26739ec2d Jan Kara           2019-05-30  5383  		}
b9c1c26739ec2d Jan Kara           2019-05-30  5384  
3da40c7b089810 Josef Bacik        2015-06-22  5385  		if (attr->ia_size != inode->i_size) {
9924a92a8c2175 Theodore Ts'o      2013-02-08  5386  			handle = ext4_journal_start(inode, EXT4_HT_INODE, 3);
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5387  			if (IS_ERR(handle)) {
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5388  				error = PTR_ERR(handle);
b9c1c26739ec2d Jan Kara           2019-05-30  5389  				goto out_mmap_sem;
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5390  			}
3da40c7b089810 Josef Bacik        2015-06-22  5391  			if (ext4_handle_valid(handle) && shrink) {
617ba13b31fbf5 Mingming Cao       2006-10-11  5392  				error = ext4_orphan_add(handle, inode);
3d287de3b82822 Dmitry Monakhov    2010-10-27  5393  				orphan = 1;
3d287de3b82822 Dmitry Monakhov    2010-10-27  5394  			}
911af577de4e44 Eryu Guan          2015-07-28  5395  			/*
911af577de4e44 Eryu Guan          2015-07-28  5396  			 * Update c/mtime on truncate up, ext4_truncate() will
911af577de4e44 Eryu Guan          2015-07-28  5397  			 * update c/mtime in shrink case below
911af577de4e44 Eryu Guan          2015-07-28  5398  			 */
911af577de4e44 Eryu Guan          2015-07-28  5399  			if (!shrink) {
eeca7ea1baa939 Deepa Dinamani     2016-11-14  5400  				inode->i_mtime = current_time(inode);
911af577de4e44 Eryu Guan          2015-07-28  5401  				inode->i_ctime = inode->i_mtime;
911af577de4e44 Eryu Guan          2015-07-28  5402  			}
aa75f4d3daaeb1 Harshad Shirwadkar 2020-10-15  5403  
aa75f4d3daaeb1 Harshad Shirwadkar 2020-10-15  5404  			if (shrink)
aa75f4d3daaeb1 Harshad Shirwadkar 2020-10-15  5405  				ext4_fc_track_range(inode,
aa75f4d3daaeb1 Harshad Shirwadkar 2020-10-15  5406  					(attr->ia_size > 0 ? attr->ia_size - 1 : 0) >>
aa75f4d3daaeb1 Harshad Shirwadkar 2020-10-15  5407  					inode->i_sb->s_blocksize_bits,
aa75f4d3daaeb1 Harshad Shirwadkar 2020-10-15  5408  					(oldsize > 0 ? oldsize - 1 : 0) >>
aa75f4d3daaeb1 Harshad Shirwadkar 2020-10-15  5409  					inode->i_sb->s_blocksize_bits);
aa75f4d3daaeb1 Harshad Shirwadkar 2020-10-15  5410  			else
aa75f4d3daaeb1 Harshad Shirwadkar 2020-10-15  5411  				ext4_fc_track_range(
aa75f4d3daaeb1 Harshad Shirwadkar 2020-10-15  5412  					inode,
aa75f4d3daaeb1 Harshad Shirwadkar 2020-10-15  5413  					(oldsize > 0 ? oldsize - 1 : oldsize) >>
aa75f4d3daaeb1 Harshad Shirwadkar 2020-10-15  5414  					inode->i_sb->s_blocksize_bits,
aa75f4d3daaeb1 Harshad Shirwadkar 2020-10-15  5415  					(attr->ia_size > 0 ? attr->ia_size - 1 : 0) >>
aa75f4d3daaeb1 Harshad Shirwadkar 2020-10-15  5416  					inode->i_sb->s_blocksize_bits);
aa75f4d3daaeb1 Harshad Shirwadkar 2020-10-15  5417  
90e775b71ac4e6 Jan Kara           2013-08-17  5418  			down_write(&EXT4_I(inode)->i_data_sem);
617ba13b31fbf5 Mingming Cao       2006-10-11  5419  			EXT4_I(inode)->i_disksize = attr->ia_size;
617ba13b31fbf5 Mingming Cao       2006-10-11  5420  			rc = ext4_mark_inode_dirty(handle, inode);
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5421  			if (!error)
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5422  				error = rc;
90e775b71ac4e6 Jan Kara           2013-08-17  5423  			/*
90e775b71ac4e6 Jan Kara           2013-08-17  5424  			 * We have to update i_size under i_data_sem together
90e775b71ac4e6 Jan Kara           2013-08-17  5425  			 * with i_disksize to avoid races with writeback code
90e775b71ac4e6 Jan Kara           2013-08-17  5426  			 * running ext4_wb_update_i_disksize().
90e775b71ac4e6 Jan Kara           2013-08-17  5427  			 */
90e775b71ac4e6 Jan Kara           2013-08-17  5428  			if (!error)
90e775b71ac4e6 Jan Kara           2013-08-17  5429  				i_size_write(inode, attr->ia_size);
90e775b71ac4e6 Jan Kara           2013-08-17  5430  			up_write(&EXT4_I(inode)->i_data_sem);
617ba13b31fbf5 Mingming Cao       2006-10-11  5431  			ext4_journal_stop(handle);
b9c1c26739ec2d Jan Kara           2019-05-30  5432  			if (error)
b9c1c26739ec2d Jan Kara           2019-05-30  5433  				goto out_mmap_sem;
82a25b027ca48d Jan Kara           2019-05-23  5434  			if (!shrink) {
b9c1c26739ec2d Jan Kara           2019-05-30  5435  				pagecache_isize_extended(inode, oldsize,
b9c1c26739ec2d Jan Kara           2019-05-30  5436  							 inode->i_size);
b9c1c26739ec2d Jan Kara           2019-05-30  5437  			} else if (ext4_should_journal_data(inode)) {
82a25b027ca48d Jan Kara           2019-05-23  5438  				ext4_wait_for_tail_page_commit(inode);
b9c1c26739ec2d Jan Kara           2019-05-30  5439  			}
430657b6be896d Ross Zwisler       2018-07-29  5440  		}
430657b6be896d Ross Zwisler       2018-07-29  5441  
53e872681fed6a Jan Kara           2012-12-25  5442  		/*
53e872681fed6a Jan Kara           2012-12-25  5443  		 * Truncate pagecache after we've waited for commit
53e872681fed6a Jan Kara           2012-12-25  5444  		 * in data=journal mode to make pages freeable.
53e872681fed6a Jan Kara           2012-12-25  5445  		 */
7caef26767c172 Kirill A. Shutemov 2013-09-12  5446  		truncate_pagecache(inode, inode->i_size);
b9c1c26739ec2d Jan Kara           2019-05-30  5447  		/*
b9c1c26739ec2d Jan Kara           2019-05-30  5448  		 * Call ext4_truncate() even if i_size didn't change to
b9c1c26739ec2d Jan Kara           2019-05-30  5449  		 * truncate possible preallocated blocks.
b9c1c26739ec2d Jan Kara           2019-05-30  5450  		 */
b9c1c26739ec2d Jan Kara           2019-05-30  5451  		if (attr->ia_size <= oldsize) {
2c98eb5ea24976 Theodore Ts'o      2016-11-13  5452  			rc = ext4_truncate(inode);
2c98eb5ea24976 Theodore Ts'o      2016-11-13  5453  			if (rc)
2c98eb5ea24976 Theodore Ts'o      2016-11-13  5454  				error = rc;
2c98eb5ea24976 Theodore Ts'o      2016-11-13  5455  		}
b9c1c26739ec2d Jan Kara           2019-05-30  5456  out_mmap_sem:
ea3d7209ca01da Jan Kara           2015-12-07  5457  		up_write(&EXT4_I(inode)->i_mmap_sem);
3da40c7b089810 Josef Bacik        2015-06-22  5458  	}
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5459  
2c98eb5ea24976 Theodore Ts'o      2016-11-13  5460  	if (!error) {
1025774ce411f2 Christoph Hellwig  2010-06-04  5461  		setattr_copy(inode, attr);
1025774ce411f2 Christoph Hellwig  2010-06-04  5462  		mark_inode_dirty(inode);
1025774ce411f2 Christoph Hellwig  2010-06-04  5463  	}
1025774ce411f2 Christoph Hellwig  2010-06-04  5464  
1025774ce411f2 Christoph Hellwig  2010-06-04  5465  	/*
1025774ce411f2 Christoph Hellwig  2010-06-04  5466  	 * If the call to ext4_truncate failed to get a transaction handle at
1025774ce411f2 Christoph Hellwig  2010-06-04  5467  	 * all, we need to clean up the in-core orphan list manually.
1025774ce411f2 Christoph Hellwig  2010-06-04  5468  	 */
3d287de3b82822 Dmitry Monakhov    2010-10-27  5469  	if (orphan && inode->i_nlink)
617ba13b31fbf5 Mingming Cao       2006-10-11  5470  		ext4_orphan_del(NULL, inode);
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5471  
2c98eb5ea24976 Theodore Ts'o      2016-11-13  5472  	if (!error && (ia_valid & ATTR_MODE))
64e178a7118b1c Christoph Hellwig  2013-12-20  5473  		rc = posix_acl_chmod(inode, inode->i_mode);
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5474  
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5475  err_out:
aa75f4d3daaeb1 Harshad Shirwadkar 2020-10-15  5476  	if  (error)
617ba13b31fbf5 Mingming Cao       2006-10-11 @5477  		ext4_std_error(inode->i_sb, error);
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5478  	if (!error)
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5479  		error = rc;
aa75f4d3daaeb1 Harshad Shirwadkar 2020-10-15  5480  	ext4_fc_stop_update(inode);
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5481  	return error;
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5482  }
ac27a0ec112a08 Dave Kleikamp      2006-10-11  5483  

:::::: The code at line 5477 was first introduced by commit
:::::: 617ba13b31fbf505cc21799826639ef24ed94af0 [PATCH] ext4: rename ext4 symbols to avoid duplication of ext3 symbols

:::::: TO: Mingming Cao <cmm@us.ibm.com>
:::::: CC: Linus Torvalds <torvalds@g5.osdl.org>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

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

end of thread, other threads:[~2021-08-23 11:35 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-08-04 21:36 fs/ext4/inode.c:5477:3: warning: Identical inner 'if' condition is always true. [identicalInnerCondition] kernel test robot
2021-08-23 11:35 kernel test robot

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.