* [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.