CC: [email protected] CC: [email protected] TO: Allison Henderson <[email protected]> CC: Mark Tinguely <[email protected]> CC: Dave Chinner <[email protected]>
tree: https://github.com/allisonhenderson/xfs_work.git delayed_attrs_v26_extended head: 19459f5cfa422b0a6a9cd3898892e43ecb49f8f3 commit: 721a69ffe0e2561371de01822bef355354eee926 [17/30] xfs: add parent pointer support to attribute code :::::: branch date: 16 hours ago :::::: commit date: 16 hours ago compiler: sparc64-linux-gcc (GCC) 11.2.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <[email protected]> cppcheck possible warnings: (new ones prefixed by >>, may not real problems) >> fs/xfs/libxfs/xfs_attr.c:666:46: warning: Expression '(X | 0x8) != 0x0' is >> always true. [comparisonError] rsvd = ((args->attr_filter & XFS_ATTR_ROOT) | XFS_ATTR_PARENT) != 0; ^ vim +666 fs/xfs/libxfs/xfs_attr.c 07120f1abdff80 fs/xfs/libxfs/xfs_attr.c Allison Collins 2020-07-20 648 0eb81a5f5c3442 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2020-02-26 649 /* a25446224353a7 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2020-02-26 650 * Note: If args->value is NULL the attribute will be removed, just like the 0eb81a5f5c3442 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2020-02-26 651 * Linux ->setattr API. 0eb81a5f5c3442 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2020-02-26 652 */ c5b4ac39a4cb6a fs/xfs/xfs_attr.c Christoph Hellwig 2014-05-13 653 int c5b4ac39a4cb6a fs/xfs/xfs_attr.c Christoph Hellwig 2014-05-13 654 xfs_attr_set( a25446224353a7 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2020-02-26 655 struct xfs_da_args *args) ^1da177e4c3f41 fs/xfs/xfs_attr.c Linus Torvalds 2005-04-16 656 { a25446224353a7 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2020-02-26 657 struct xfs_inode *dp = args->dp; 3d3c8b5222b924 fs/xfs/xfs_attr.c Jie Liu 2013-08-12 658 struct xfs_mount *mp = dp->i_mount; 3d3c8b5222b924 fs/xfs/xfs_attr.c Jie Liu 2013-08-12 659 struct xfs_trans_res tres; 721a69ffe0e256 fs/xfs/libxfs/xfs_attr.c Allison Henderson 2021-08-23 660 bool rsvd; 4c74a56b9de76b fs/xfs/libxfs/xfs_attr.c Allison Henderson 2018-10-18 661 int error, local; 3a19bb147c72d2 fs/xfs/libxfs/xfs_attr.c Chandan Babu R 2021-01-22 662 int rmt_blks = 0; 0eb81a5f5c3442 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2020-02-26 663 unsigned int total; 5fad9cb9d34c53 fs/xfs/libxfs/xfs_attr.c Allison Henderson 2022-01-18 664 int delayed = xfs_has_larp(mp); c5b4ac39a4cb6a fs/xfs/xfs_attr.c Christoph Hellwig 2014-05-13 665 721a69ffe0e256 fs/xfs/libxfs/xfs_attr.c Allison Henderson 2021-08-23 @666 rsvd = ((args->attr_filter & XFS_ATTR_ROOT) | XFS_ATTR_PARENT) != 0; 721a69ffe0e256 fs/xfs/libxfs/xfs_attr.c Allison Henderson 2021-08-23 667 75c8c50fa16a23 fs/xfs/libxfs/xfs_attr.c Dave Chinner 2021-08-18 668 if (xfs_is_shutdown(dp->i_mount)) 2451337dd04390 fs/xfs/libxfs/xfs_attr.c Dave Chinner 2014-06-25 669 return -EIO; c5b4ac39a4cb6a fs/xfs/xfs_attr.c Christoph Hellwig 2014-05-13 670 0eb81a5f5c3442 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2020-02-26 671 error = xfs_qm_dqattach(dp); 0eb81a5f5c3442 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2020-02-26 672 if (error) 0eb81a5f5c3442 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2020-02-26 673 return error; 0eb81a5f5c3442 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2020-02-26 674 a25446224353a7 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2020-02-26 675 args->geo = mp->m_attr_geo; a25446224353a7 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2020-02-26 676 args->whichfork = XFS_ATTR_FORK; a25446224353a7 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2020-02-26 677 args->hashval = xfs_da_hashname(args->name, args->namelen); ^1da177e4c3f41 fs/xfs/xfs_attr.c Linus Torvalds 2005-04-16 678 0eb81a5f5c3442 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2020-02-26 679 /* 0eb81a5f5c3442 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2020-02-26 680 * We have no control over the attribute names that userspace passes us 0eb81a5f5c3442 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2020-02-26 681 * to remove, so we have to allow the name lookup prior to attribute 0eb81a5f5c3442 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2020-02-26 682 * removal to fail as well. 0eb81a5f5c3442 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2020-02-26 683 */ a25446224353a7 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2020-02-26 684 args->op_flags = XFS_DA_OP_OKNOENT; 0eb81a5f5c3442 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2020-02-26 685 a25446224353a7 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2020-02-26 686 if (args->value) { 0eb81a5f5c3442 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2020-02-26 687 XFS_STATS_INC(mp, xs_attr_set); 0eb81a5f5c3442 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2020-02-26 688 a25446224353a7 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2020-02-26 689 args->op_flags |= XFS_DA_OP_ADDNAME; a25446224353a7 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2020-02-26 690 args->total = xfs_attr_calc_size(args, &local); ^1da177e4c3f41 fs/xfs/xfs_attr.c Linus Torvalds 2005-04-16 691 ^1da177e4c3f41 fs/xfs/xfs_attr.c Linus Torvalds 2005-04-16 692 /* ^1da177e4c3f41 fs/xfs/xfs_attr.c Linus Torvalds 2005-04-16 693 * If the inode doesn't have an attribute fork, add one. ^1da177e4c3f41 fs/xfs/xfs_attr.c Linus Torvalds 2005-04-16 694 * (inode must not be locked when we call this routine) ^1da177e4c3f41 fs/xfs/xfs_attr.c Linus Torvalds 2005-04-16 695 */ ^1da177e4c3f41 fs/xfs/xfs_attr.c Linus Torvalds 2005-04-16 696 if (XFS_IFORK_Q(dp) == 0) { 0eb81a5f5c3442 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2020-02-26 697 int sf_size = sizeof(struct xfs_attr_sf_hdr) + e01b7eed5d0a9b fs/xfs/libxfs/xfs_attr.c Carlos Maiolino 2020-09-07 698 xfs_attr_sf_entsize_byname(args->namelen, a25446224353a7 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2020-02-26 699 args->valuelen); e5889e90dda328 fs/xfs/xfs_attr.c Barry Naujok 2007-02-10 700 c5b4ac39a4cb6a fs/xfs/xfs_attr.c Christoph Hellwig 2014-05-13 701 error = xfs_bmap_add_attrfork(dp, sf_size, rsvd); c5b4ac39a4cb6a fs/xfs/xfs_attr.c Christoph Hellwig 2014-05-13 702 if (error) c5b4ac39a4cb6a fs/xfs/xfs_attr.c Christoph Hellwig 2014-05-13 703 return error; ^1da177e4c3f41 fs/xfs/xfs_attr.c Linus Torvalds 2005-04-16 704 } ^1da177e4c3f41 fs/xfs/xfs_attr.c Linus Torvalds 2005-04-16 705 253f4911f297b8 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2016-04-06 706 tres.tr_logres = M_RES(mp)->tr_attrsetm.tr_logres + a25446224353a7 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2020-02-26 707 M_RES(mp)->tr_attrsetrt.tr_logres * a25446224353a7 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2020-02-26 708 args->total; 253f4911f297b8 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2016-04-06 709 tres.tr_logcount = XFS_ATTRSET_LOG_COUNT; 253f4911f297b8 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2016-04-06 710 tres.tr_logflags = XFS_TRANS_PERM_LOG_RES; a25446224353a7 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2020-02-26 711 total = args->total; 3a19bb147c72d2 fs/xfs/libxfs/xfs_attr.c Chandan Babu R 2021-01-22 712 3a19bb147c72d2 fs/xfs/libxfs/xfs_attr.c Chandan Babu R 2021-01-22 713 if (!local) 3a19bb147c72d2 fs/xfs/libxfs/xfs_attr.c Chandan Babu R 2021-01-22 714 rmt_blks = xfs_attr3_rmt_blocks(mp, args->valuelen); 0eb81a5f5c3442 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2020-02-26 715 } else { 0eb81a5f5c3442 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2020-02-26 716 XFS_STATS_INC(mp, xs_attr_remove); 0eb81a5f5c3442 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2020-02-26 717 0eb81a5f5c3442 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2020-02-26 718 tres = M_RES(mp)->tr_attrrm; 0eb81a5f5c3442 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2020-02-26 719 total = XFS_ATTRRM_SPACE_RES(mp); 3a19bb147c72d2 fs/xfs/libxfs/xfs_attr.c Chandan Babu R 2021-01-22 720 rmt_blks = xfs_attr3_rmt_blocks(mp, XFS_XATTR_SIZE_MAX); 0eb81a5f5c3442 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2020-02-26 721 } ^1da177e4c3f41 fs/xfs/xfs_attr.c Linus Torvalds 2005-04-16 722 5fad9cb9d34c53 fs/xfs/libxfs/xfs_attr.c Allison Henderson 2022-01-18 723 if (delayed) { 5fad9cb9d34c53 fs/xfs/libxfs/xfs_attr.c Allison Henderson 2022-01-18 724 error = xfs_attr_use_log_assist(mp); 5fad9cb9d34c53 fs/xfs/libxfs/xfs_attr.c Allison Henderson 2022-01-18 725 if (error) 5fad9cb9d34c53 fs/xfs/libxfs/xfs_attr.c Allison Henderson 2022-01-18 726 return error; 5fad9cb9d34c53 fs/xfs/libxfs/xfs_attr.c Allison Henderson 2022-01-18 727 } 5fad9cb9d34c53 fs/xfs/libxfs/xfs_attr.c Allison Henderson 2022-01-18 728 ^1da177e4c3f41 fs/xfs/xfs_attr.c Linus Torvalds 2005-04-16 729 /* ^1da177e4c3f41 fs/xfs/xfs_attr.c Linus Torvalds 2005-04-16 730 * Root fork attributes can use reserved data blocks for this ^1da177e4c3f41 fs/xfs/xfs_attr.c Linus Torvalds 2005-04-16 731 * operation if necessary ^1da177e4c3f41 fs/xfs/xfs_attr.c Linus Torvalds 2005-04-16 732 */ 3de4eb106fcc97 fs/xfs/libxfs/xfs_attr.c Darrick J. Wong 2021-01-26 733 error = xfs_trans_alloc_inode(dp, &tres, total, 0, rsvd, &args->trans); 253f4911f297b8 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2016-04-06 734 if (error) 5fad9cb9d34c53 fs/xfs/libxfs/xfs_attr.c Allison Henderson 2022-01-18 735 goto drop_incompat; ^1da177e4c3f41 fs/xfs/xfs_attr.c Linus Torvalds 2005-04-16 736 3a19bb147c72d2 fs/xfs/libxfs/xfs_attr.c Chandan Babu R 2021-01-22 737 if (args->value || xfs_inode_hasattr(dp)) { 3a19bb147c72d2 fs/xfs/libxfs/xfs_attr.c Chandan Babu R 2021-01-22 738 error = xfs_iext_count_may_overflow(dp, XFS_ATTR_FORK, 3a19bb147c72d2 fs/xfs/libxfs/xfs_attr.c Chandan Babu R 2021-01-22 739 XFS_IEXT_ATTR_MANIP_CNT(rmt_blks)); 3a19bb147c72d2 fs/xfs/libxfs/xfs_attr.c Chandan Babu R 2021-01-22 740 if (error) 3a19bb147c72d2 fs/xfs/libxfs/xfs_attr.c Chandan Babu R 2021-01-22 741 goto out_trans_cancel; 3a19bb147c72d2 fs/xfs/libxfs/xfs_attr.c Chandan Babu R 2021-01-22 742 } 3a19bb147c72d2 fs/xfs/libxfs/xfs_attr.c Chandan Babu R 2021-01-22 743 51b495eba84dee fs/xfs/libxfs/xfs_attr.c Dave Chinner 2021-08-18 744 error = xfs_attr_lookup(args); a25446224353a7 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2020-02-26 745 if (args->value) { deed9512872d09 fs/xfs/libxfs/xfs_attr.c Allison Collins 2020-07-20 746 if (error == -EEXIST && (args->attr_flags & XATTR_CREATE)) deed9512872d09 fs/xfs/libxfs/xfs_attr.c Allison Collins 2020-07-20 747 goto out_trans_cancel; deed9512872d09 fs/xfs/libxfs/xfs_attr.c Allison Collins 2020-07-20 748 if (error == -ENOATTR && (args->attr_flags & XATTR_REPLACE)) deed9512872d09 fs/xfs/libxfs/xfs_attr.c Allison Collins 2020-07-20 749 goto out_trans_cancel; deed9512872d09 fs/xfs/libxfs/xfs_attr.c Allison Collins 2020-07-20 750 if (error != -ENOATTR && error != -EEXIST) deed9512872d09 fs/xfs/libxfs/xfs_attr.c Allison Collins 2020-07-20 751 goto out_trans_cancel; deed9512872d09 fs/xfs/libxfs/xfs_attr.c Allison Collins 2020-07-20 752 5fad9cb9d34c53 fs/xfs/libxfs/xfs_attr.c Allison Henderson 2022-01-18 753 error = xfs_attr_set_deferred(args); 322ff6b8cd54fe fs/xfs/xfs_attr.c Niv Sardi 2008-08-13 754 if (error) 710d707d2fa9cf fs/xfs/libxfs/xfs_attr.c Darrick J. Wong 2019-04-24 755 goto out_trans_cancel; 5fad9cb9d34c53 fs/xfs/libxfs/xfs_attr.c Allison Henderson 2022-01-18 756 2f3cd809196381 fs/xfs/libxfs/xfs_attr.c Allison Henderson 2018-10-18 757 /* shortform attribute has already been committed */ a25446224353a7 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2020-02-26 758 if (!args->trans) 2f3cd809196381 fs/xfs/libxfs/xfs_attr.c Allison Henderson 2018-10-18 759 goto out_unlock; 0eb81a5f5c3442 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2020-02-26 760 } else { deed9512872d09 fs/xfs/libxfs/xfs_attr.c Allison Collins 2020-07-20 761 if (error != -EEXIST) deed9512872d09 fs/xfs/libxfs/xfs_attr.c Allison Collins 2020-07-20 762 goto out_trans_cancel; deed9512872d09 fs/xfs/libxfs/xfs_attr.c Allison Collins 2020-07-20 763 5fad9cb9d34c53 fs/xfs/libxfs/xfs_attr.c Allison Henderson 2022-01-18 764 error = xfs_attr_remove_deferred(args); 0eb81a5f5c3442 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2020-02-26 765 if (error) 0eb81a5f5c3442 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2020-02-26 766 goto out_trans_cancel; ^1da177e4c3f41 fs/xfs/xfs_attr.c Linus Torvalds 2005-04-16 767 } ^1da177e4c3f41 fs/xfs/xfs_attr.c Linus Torvalds 2005-04-16 768 ^1da177e4c3f41 fs/xfs/xfs_attr.c Linus Torvalds 2005-04-16 769 /* ^1da177e4c3f41 fs/xfs/xfs_attr.c Linus Torvalds 2005-04-16 770 * If this is a synchronous mount, make sure that the ^1da177e4c3f41 fs/xfs/xfs_attr.c Linus Torvalds 2005-04-16 771 * transaction goes to disk before returning to the user. ^1da177e4c3f41 fs/xfs/xfs_attr.c Linus Torvalds 2005-04-16 772 */ 0560f31a09e523 fs/xfs/libxfs/xfs_attr.c Dave Chinner 2021-08-18 773 if (xfs_has_wsync(mp)) a25446224353a7 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2020-02-26 774 xfs_trans_set_sync(args->trans); ^1da177e4c3f41 fs/xfs/xfs_attr.c Linus Torvalds 2005-04-16 775 1d733019940040 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2020-02-26 776 if (!(args->op_flags & XFS_DA_OP_NOTIME)) a25446224353a7 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2020-02-26 777 xfs_trans_ichgtime(args->trans, dp, XFS_ICHGTIME_CHG); dcd79a1423f64e fs/xfs/xfs_attr.c Dave Chinner 2010-09-28 778 ^1da177e4c3f41 fs/xfs/xfs_attr.c Linus Torvalds 2005-04-16 779 /* ^1da177e4c3f41 fs/xfs/xfs_attr.c Linus Torvalds 2005-04-16 780 * Commit the last in the sequence of transactions. ^1da177e4c3f41 fs/xfs/xfs_attr.c Linus Torvalds 2005-04-16 781 */ a25446224353a7 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2020-02-26 782 xfs_trans_log_inode(args->trans, dp, XFS_ILOG_CORE); a25446224353a7 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2020-02-26 783 error = xfs_trans_commit(args->trans); 2f3cd809196381 fs/xfs/libxfs/xfs_attr.c Allison Henderson 2018-10-18 784 out_unlock: ^1da177e4c3f41 fs/xfs/xfs_attr.c Linus Torvalds 2005-04-16 785 xfs_iunlock(dp, XFS_ILOCK_EXCL); 5fad9cb9d34c53 fs/xfs/libxfs/xfs_attr.c Allison Henderson 2022-01-18 786 drop_incompat: 5fad9cb9d34c53 fs/xfs/libxfs/xfs_attr.c Allison Henderson 2022-01-18 787 if (delayed) 5fad9cb9d34c53 fs/xfs/libxfs/xfs_attr.c Allison Henderson 2022-01-18 788 xlog_drop_incompat_feat(mp->m_log); c5b4ac39a4cb6a fs/xfs/xfs_attr.c Christoph Hellwig 2014-05-13 789 return error; ^1da177e4c3f41 fs/xfs/xfs_attr.c Linus Torvalds 2005-04-16 790 2f3cd809196381 fs/xfs/libxfs/xfs_attr.c Allison Henderson 2018-10-18 791 out_trans_cancel: a25446224353a7 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2020-02-26 792 if (args->trans) a25446224353a7 fs/xfs/libxfs/xfs_attr.c Christoph Hellwig 2020-02-26 793 xfs_trans_cancel(args->trans); 2f3cd809196381 fs/xfs/libxfs/xfs_attr.c Allison Henderson 2018-10-18 794 goto out_unlock; ^1da177e4c3f41 fs/xfs/xfs_attr.c Linus Torvalds 2005-04-16 795 } ^1da177e4c3f41 fs/xfs/xfs_attr.c Linus Torvalds 2005-04-16 796 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/[email protected] _______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
