All of lore.kernel.org
 help / color / mirror / Atom feed
* [peterz-queue:locking/kcsan 19/21] fs/xfs/libxfs/xfs_attr.c:924 xfs_attr_node_addname() warn: Function too hairy. No more merges.
@ 2020-05-17  8:05 kbuild test robot
  0 siblings, 0 replies; only message in thread
From: kbuild test robot @ 2020-05-17  8:05 UTC (permalink / raw)
  To: kbuild

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

CC: kbuild-all(a)lists.01.org
TO: Will Deacon <will@kernel.org>
CC: Thomas Gleixner <tglx@linutronix.de>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git locking/kcsan
head:   ffed638b6a2180da8fd002a46632d746af72b299
commit: cdd28ad2d8110099e43527e96d059c5639809680 [19/21] READ_ONCE: Use data_race() to avoid KCSAN instrumentation
config: i386-allyesconfig (attached as .config)
:::::: branch date: 4 days ago
:::::: commit date: 5 days ago

If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

New smatch warnings:
fs/xfs/libxfs/xfs_attr.c:924 xfs_attr_node_addname() warn: Function too hairy.  No more merges.
fs/xfs/libxfs/xfs_dir2_leaf.c:1746 xfs_dir2_node_to_leaf() warn: Function too hairy.  No more merges.
fs/xfs/libxfs/xfs_ialloc.c:1367 xfs_dialloc_ag_inobt() warn: Function too hairy.  No more merges.
fs/xfs/xfs_ioctl.c:1601 xfs_ioctl_setattr() warn: Function too hairy.  No more merges.
fs/xfs/xfs_mount.c:1023 xfs_mountfs() warn: Function too hairy.  No more merges.

Old smatch warnings:
fs/xfs/libxfs/xfs_dir2_leaf.c:1281 xfs_dir2_leaf_lookup_int() error: we previously assumed 'dbp' could be null (see line 1267)
fs/xfs/libxfs/xfs_dir2_leaf.c:1613 xfs_dir2_leaf_trim_data() warn: inconsistent indenting

# https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git/commit/?id=cdd28ad2d8110099e43527e96d059c5639809680
git remote add peterz-queue https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git
git remote update peterz-queue
git checkout cdd28ad2d8110099e43527e96d059c5639809680
vim +924 fs/xfs/libxfs/xfs_attr.c

^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  720  
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  721  /*========================================================================
c2c4c477e0d02b fs/xfs/xfs_attr.c        Dave Chinner      2014-06-06  722   * External routines when attribute list size > geo->blksize
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  723   *========================================================================*/
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  724  
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  725  /*
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  726   * Add a name to a Btree-format attribute list.
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  727   *
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  728   * This will involve walking down the Btree, and may involve splitting
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  729   * leaf nodes and even splitting intermediate nodes up to and including
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  730   * the root node (a special case of an intermediate node).
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  731   *
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  732   * "Remote" attribute values confuse the issue and atomic rename operations
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  733   * add a whole extra layer of confusion on top of that.
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  734   */
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  735  STATIC int
32a9b7c65cfc7d fs/xfs/libxfs/xfs_attr.c Brian Foster      2018-07-11  736  xfs_attr_node_addname(
32a9b7c65cfc7d fs/xfs/libxfs/xfs_attr.c Brian Foster      2018-07-11  737  	struct xfs_da_args	*args)
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  738  {
32a9b7c65cfc7d fs/xfs/libxfs/xfs_attr.c Brian Foster      2018-07-11  739  	struct xfs_da_state	*state;
32a9b7c65cfc7d fs/xfs/libxfs/xfs_attr.c Brian Foster      2018-07-11  740  	struct xfs_da_state_blk	*blk;
32a9b7c65cfc7d fs/xfs/libxfs/xfs_attr.c Brian Foster      2018-07-11  741  	struct xfs_inode	*dp;
32a9b7c65cfc7d fs/xfs/libxfs/xfs_attr.c Brian Foster      2018-07-11  742  	struct xfs_mount	*mp;
f6106efae5f414 fs/xfs/libxfs/xfs_attr.c Eric Sandeen      2016-01-11  743  	int			retval, error;
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  744  
5a5881cdeec2c0 fs/xfs/xfs_attr.c        Dave Chinner      2012-03-22  745  	trace_xfs_attr_node_addname(args);
5a5881cdeec2c0 fs/xfs/xfs_attr.c        Dave Chinner      2012-03-22  746  
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  747  	/*
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  748  	 * Fill in bucket of arguments/results/context to carry around.
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  749  	 */
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  750  	dp = args->dp;
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  751  	mp = dp->i_mount;
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  752  restart:
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  753  	state = xfs_da_state_alloc();
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  754  	state->args = args;
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  755  	state->mp = mp;
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  756  
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  757  	/*
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  758  	 * Search to see if name already exists, and get back a pointer
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  759  	 * to where it should go.
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  760  	 */
f5ea110044fa85 fs/xfs/xfs_attr.c        Dave Chinner      2013-04-24  761  	error = xfs_da3_node_lookup_int(state, &retval);
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  762  	if (error)
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  763  		goto out;
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  764  	blk = &state->path.blk[ state->path.active-1 ];
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  765  	ASSERT(blk->magic == XFS_ATTR_LEAF_MAGIC);
d5f0f49a9bdd42 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2020-02-26  766  	if (retval == -ENOATTR && (args->attr_flags & XATTR_REPLACE))
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  767  		goto out;
f3e93d95feef76 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2020-02-26  768  	if (retval == -EEXIST) {
d5f0f49a9bdd42 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2020-02-26  769  		if (args->attr_flags & XATTR_CREATE)
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  770  			goto out;
5a5881cdeec2c0 fs/xfs/xfs_attr.c        Dave Chinner      2012-03-22  771  
5a5881cdeec2c0 fs/xfs/xfs_attr.c        Dave Chinner      2012-03-22  772  		trace_xfs_attr_node_replace(args);
5a5881cdeec2c0 fs/xfs/xfs_attr.c        Dave Chinner      2012-03-22  773  
8275cdd0e7ac55 fs/xfs/xfs_attr.c        Dave Chinner      2014-05-06  774  		/* save the attribute state for later removal*/
6a178100abf012 fs/xfs/xfs_attr.c        Barry Naujok      2008-05-21  775  		args->op_flags |= XFS_DA_OP_RENAME;	/* atomic rename op */
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  776  		args->blkno2 = args->blkno;		/* set 2nd entry info*/
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  777  		args->index2 = args->index;
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  778  		args->rmtblkno2 = args->rmtblkno;
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  779  		args->rmtblkcnt2 = args->rmtblkcnt;
8275cdd0e7ac55 fs/xfs/xfs_attr.c        Dave Chinner      2014-05-06  780  		args->rmtvaluelen2 = args->rmtvaluelen;
8275cdd0e7ac55 fs/xfs/xfs_attr.c        Dave Chinner      2014-05-06  781  
8275cdd0e7ac55 fs/xfs/xfs_attr.c        Dave Chinner      2014-05-06  782  		/*
8275cdd0e7ac55 fs/xfs/xfs_attr.c        Dave Chinner      2014-05-06  783  		 * clear the remote attr state now that it is saved so that the
8275cdd0e7ac55 fs/xfs/xfs_attr.c        Dave Chinner      2014-05-06  784  		 * values reflect the state of the attribute we are about to
8275cdd0e7ac55 fs/xfs/xfs_attr.c        Dave Chinner      2014-05-06  785  		 * add, not the attribute we just found and will remove later.
8275cdd0e7ac55 fs/xfs/xfs_attr.c        Dave Chinner      2014-05-06  786  		 */
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  787  		args->rmtblkno = 0;
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  788  		args->rmtblkcnt = 0;
8275cdd0e7ac55 fs/xfs/xfs_attr.c        Dave Chinner      2014-05-06  789  		args->rmtvaluelen = 0;
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  790  	}
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  791  
517c22207b0459 fs/xfs/xfs_attr.c        Dave Chinner      2013-04-24  792  	retval = xfs_attr3_leaf_add(blk->bp, state->args);
2451337dd04390 fs/xfs/libxfs/xfs_attr.c Dave Chinner      2014-06-25  793  	if (retval == -ENOSPC) {
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  794  		if (state->path.active == 1) {
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  795  			/*
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  796  			 * Its really a single leaf node, but it had
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  797  			 * out-of-line values so it looked like it *might*
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  798  			 * have been a b-tree.
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  799  			 */
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  800  			xfs_da_state_free(state);
6dd93e9e5eb19e fs/xfs/xfs_attr.c        Eric Sandeen      2013-07-31  801  			state = NULL;
517c22207b0459 fs/xfs/xfs_attr.c        Dave Chinner      2013-04-24  802  			error = xfs_attr3_leaf_to_node(args);
8ad7c629b18695 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2017-08-28  803  			if (error)
d5a2e2893da0d6 fs/xfs/libxfs/xfs_attr.c Brian Foster      2018-09-29  804  				goto out;
9e28a242be65b8 fs/xfs/libxfs/xfs_attr.c Brian Foster      2018-07-24  805  			error = xfs_defer_finish(&args->trans);
8ad7c629b18695 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2017-08-28  806  			if (error)
9b1f4e9831df29 fs/xfs/libxfs/xfs_attr.c Brian Foster      2018-08-01  807  				goto out;
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  808  
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  809  			/*
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  810  			 * Commit the node conversion and start the next
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  811  			 * trans in the chain.
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  812  			 */
411350df14a3d6 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2017-08-28  813  			error = xfs_trans_roll_inode(&args->trans, dp);
322ff6b8cd54fe fs/xfs/xfs_attr.c        Niv Sardi         2008-08-13  814  			if (error)
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  815  				goto out;
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  816  
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  817  			goto restart;
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  818  		}
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  819  
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  820  		/*
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  821  		 * Split as many Btree elements as required.
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  822  		 * This code tracks the new and old attr's location
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  823  		 * in the index/blkno/rmtblkno/rmtblkcnt fields and
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  824  		 * in the index2/blkno2/rmtblkno2/rmtblkcnt2 fields.
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  825  		 */
f5ea110044fa85 fs/xfs/xfs_attr.c        Dave Chinner      2013-04-24  826  		error = xfs_da3_split(state);
8ad7c629b18695 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2017-08-28  827  		if (error)
d5a2e2893da0d6 fs/xfs/libxfs/xfs_attr.c Brian Foster      2018-09-29  828  			goto out;
9e28a242be65b8 fs/xfs/libxfs/xfs_attr.c Brian Foster      2018-07-24  829  		error = xfs_defer_finish(&args->trans);
8ad7c629b18695 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2017-08-28  830  		if (error)
9b1f4e9831df29 fs/xfs/libxfs/xfs_attr.c Brian Foster      2018-08-01  831  			goto out;
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  832  	} else {
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  833  		/*
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  834  		 * Addition succeeded, update Btree hashvals.
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  835  		 */
f5ea110044fa85 fs/xfs/xfs_attr.c        Dave Chinner      2013-04-24  836  		xfs_da3_fixhashpath(state, &state->path);
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  837  	}
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  838  
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  839  	/*
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  840  	 * Kill the state structure, we're done with it and need to
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  841  	 * allow the buffers to come back later.
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  842  	 */
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  843  	xfs_da_state_free(state);
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  844  	state = NULL;
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  845  
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  846  	/*
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  847  	 * Commit the leaf addition or btree split and start the next
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  848  	 * trans in the chain.
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  849  	 */
411350df14a3d6 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2017-08-28  850  	error = xfs_trans_roll_inode(&args->trans, dp);
322ff6b8cd54fe fs/xfs/xfs_attr.c        Niv Sardi         2008-08-13  851  	if (error)
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  852  		goto out;
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  853  
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  854  	/*
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  855  	 * If there was an out-of-line value, allocate the blocks we
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  856  	 * identified for its storage and copy the value.  This is done
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  857  	 * after we create the attribute so that we don't overflow the
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  858  	 * maximum size of a transaction and/or hit a deadlock.
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  859  	 */
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  860  	if (args->rmtblkno > 0) {
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  861  		error = xfs_attr_rmtval_set(args);
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  862  		if (error)
d99831ff393ff2 fs/xfs/xfs_attr.c        Eric Sandeen      2014-06-22  863  			return error;
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  864  	}
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  865  
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  866  	/*
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  867  	 * If this is an atomic rename operation, we must "flip" the
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  868  	 * incomplete flags on the "new" and "old" attribute/value pairs
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  869  	 * so that one disappears and one appears atomically.  Then we
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  870  	 * must remove the "old" attribute/value pair.
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  871  	 */
6a178100abf012 fs/xfs/xfs_attr.c        Barry Naujok      2008-05-21  872  	if (args->op_flags & XFS_DA_OP_RENAME) {
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  873  		/*
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  874  		 * In a separate transaction, set the incomplete flag on the
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  875  		 * "old" attr and clear the incomplete flag on the "new" attr.
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  876  		 */
517c22207b0459 fs/xfs/xfs_attr.c        Dave Chinner      2013-04-24  877  		error = xfs_attr3_leaf_flipflags(args);
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  878  		if (error)
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  879  			goto out;
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  880  
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  881  		/*
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  882  		 * Dismantle the "old" attribute/value pair by removing
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  883  		 * a "remote" value (if it exists).
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  884  		 */
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  885  		args->index = args->index2;
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  886  		args->blkno = args->blkno2;
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  887  		args->rmtblkno = args->rmtblkno2;
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  888  		args->rmtblkcnt = args->rmtblkcnt2;
8275cdd0e7ac55 fs/xfs/xfs_attr.c        Dave Chinner      2014-05-06  889  		args->rmtvaluelen = args->rmtvaluelen2;
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  890  		if (args->rmtblkno) {
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  891  			error = xfs_attr_rmtval_remove(args);
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  892  			if (error)
d99831ff393ff2 fs/xfs/xfs_attr.c        Eric Sandeen      2014-06-22  893  				return error;
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  894  		}
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  895  
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  896  		/*
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  897  		 * Re-find the "old" attribute entry after any split ops.
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  898  		 * The INCOMPLETE flag means that we will find the "old"
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  899  		 * attr, not the "new" one.
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  900  		 */
254f800f810415 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2020-02-26  901  		args->attr_filter |= XFS_ATTR_INCOMPLETE;
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  902  		state = xfs_da_state_alloc();
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  903  		state->args = args;
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  904  		state->mp = mp;
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  905  		state->inleaf = 0;
f5ea110044fa85 fs/xfs/xfs_attr.c        Dave Chinner      2013-04-24  906  		error = xfs_da3_node_lookup_int(state, &retval);
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  907  		if (error)
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  908  			goto out;
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  909  
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  910  		/*
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  911  		 * Remove the name and update the hashvals in the tree.
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  912  		 */
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  913  		blk = &state->path.blk[ state->path.active-1 ];
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  914  		ASSERT(blk->magic == XFS_ATTR_LEAF_MAGIC);
517c22207b0459 fs/xfs/xfs_attr.c        Dave Chinner      2013-04-24  915  		error = xfs_attr3_leaf_remove(blk->bp, args);
f5ea110044fa85 fs/xfs/xfs_attr.c        Dave Chinner      2013-04-24  916  		xfs_da3_fixhashpath(state, &state->path);
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  917  
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  918  		/*
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  919  		 * Check to see if the tree needs to be collapsed.
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  920  		 */
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  921  		if (retval && (state->path.active > 1)) {
f5ea110044fa85 fs/xfs/xfs_attr.c        Dave Chinner      2013-04-24  922  			error = xfs_da3_join(state);
8ad7c629b18695 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2017-08-28  923  			if (error)
d5a2e2893da0d6 fs/xfs/libxfs/xfs_attr.c Brian Foster      2018-09-29 @924  				goto out;
9e28a242be65b8 fs/xfs/libxfs/xfs_attr.c Brian Foster      2018-07-24  925  			error = xfs_defer_finish(&args->trans);
8ad7c629b18695 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2017-08-28  926  			if (error)
9b1f4e9831df29 fs/xfs/libxfs/xfs_attr.c Brian Foster      2018-08-01  927  				goto out;
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  928  		}
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  929  
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  930  		/*
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  931  		 * Commit and start the next trans in the chain.
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  932  		 */
411350df14a3d6 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2017-08-28  933  		error = xfs_trans_roll_inode(&args->trans, dp);
322ff6b8cd54fe fs/xfs/xfs_attr.c        Niv Sardi         2008-08-13  934  		if (error)
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  935  			goto out;
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  936  
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  937  	} else if (args->rmtblkno > 0) {
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  938  		/*
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  939  		 * Added a "remote" value, just clear the incomplete flag.
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  940  		 */
517c22207b0459 fs/xfs/xfs_attr.c        Dave Chinner      2013-04-24  941  		error = xfs_attr3_leaf_clearflag(args);
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  942  		if (error)
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  943  			goto out;
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  944  	}
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  945  	retval = error = 0;
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  946  
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  947  out:
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  948  	if (state)
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  949  		xfs_da_state_free(state);
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  950  	if (error)
d99831ff393ff2 fs/xfs/xfs_attr.c        Eric Sandeen      2014-06-22  951  		return error;
d99831ff393ff2 fs/xfs/xfs_attr.c        Eric Sandeen      2014-06-22  952  	return retval;
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  953  }
^1da177e4c3f41 fs/xfs/xfs_attr.c        Linus Torvalds    2005-04-16  954  

:::::: The code at line 924 was first introduced by commit
:::::: d5a2e2893da0d62c3888c91ae2da798adc17a9b9 xfs: remove last of unnecessary xfs_defer_cancel() callers

:::::: TO: Brian Foster <bfoster@redhat.com>
:::::: CC: Dave Chinner <david@fromorbit.com>

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

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 72515 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2020-05-17  8:05 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-17  8:05 [peterz-queue:locking/kcsan 19/21] fs/xfs/libxfs/xfs_attr.c:924 xfs_attr_node_addname() warn: Function too hairy. No more merges kbuild 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.