From: Alli <allison.henderson@oracle.com>
To: linux-xfs@vger.kernel.org
Subject: Re: [PATCH v2] xfs: Add new name to attri/d
Date: Tue, 30 Aug 2022 11:05:25 -0700 [thread overview]
Message-ID: <8a59b8884e8dea7b05205be3a4c7f53f9da58371.camel@oracle.com> (raw)
In-Reply-To: <202208310018.1wKCQHzH-lkp@intel.com>
On Wed, 2022-08-31 at 00:31 +0800, kernel test robot wrote:
> Hi Allison,
>
> Thank you for the patch! Yet something to improve:
>
> [auto build test ERROR on v6.0-rc3]
> [also build test ERROR on linus/master next-20220830]
> [If your patch is applied to the wrong git tree, kindly drop us a
> note.
> And when submitting patch, we suggest to use '--base' as documented
> in
> https://urldefense.com/v3/__https://git-scm.com/docs/git-format-patch*_base_tree_information__;Iw!!ACWV5N9M2RV99hQ!P_ML_BJdQByB_s-n0ArO4YhQL5J5odeU-wn7Z_WCCcblbKqP8g51z8T-Yrx9v7evOofMkoANqhTd_uQ$ ]
>
> url:
> https://urldefense.com/v3/__https://github.com/intel-lab-lkp/linux/commits/Allison-Henderson/xfs-Add-new-name-to-attri-d/20220830-053816__;!!ACWV5N9M2RV99hQ!P_ML_BJdQByB_s-n0ArO4YhQL5J5odeU-wn7Z_WCCcblbKqP8g51z8T-Yrx9v7evOofMkoANAw_F4ME$
>
> base: b90cb1053190353cc30f0fef0ef1f378ccc063c5
> config: x86_64-rhel-8.3-kselftests (
> https://urldefense.com/v3/__https://download.01.org/0day-ci/archive/20220831/202208310018.1wKCQHzH-lkp@intel.com/config__;!!ACWV5N9M2RV99hQ!P_ML_BJdQByB_s-n0ArO4YhQL5J5odeU-wn7Z_WCCcblbKqP8g51z8T-Yrx9v7evOofMkoANc7fxoPo$
> )
> compiler: gcc-11 (Debian 11.3.0-5) 11.3.0
> reproduce (this is a W=1 build):
> #
> https://urldefense.com/v3/__https://github.com/intel-lab-lkp/linux/commit/68f33e68647f25b811773b237669cf26e6b43382__;!!ACWV5N9M2RV99hQ!P_ML_BJdQByB_s-n0ArO4YhQL5J5odeU-wn7Z_WCCcblbKqP8g51z8T-Yrx9v7evOofMkoANaktysnU$
>
> git remote add linux-review
> https://urldefense.com/v3/__https://github.com/intel-lab-lkp/linux__;!!ACWV5N9M2RV99hQ!P_ML_BJdQByB_s-n0ArO4YhQL5J5odeU-wn7Z_WCCcblbKqP8g51z8T-Yrx9v7evOofMkoANKKi62kA$
>
> git fetch --no-tags linux-review Allison-Henderson/xfs-Add-
> new-name-to-attri-d/20220830-053816
> git checkout 68f33e68647f25b811773b237669cf26e6b43382
> # save the config file
> mkdir build_dir && cp config build_dir/.config
> make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash
> arch/x86/entry/vdso/ fs/xfs/
>
> If you fix the issue, kindly add following tag where applicable
> Reported-by: kernel test robot <lkp@intel.com>
>
> All errors (new ones prefixed by >>):
>
> fs/xfs/xfs_attr_item.c: In function
> 'xlog_recover_attri_commit_pass2':
> fs/xfs/xfs_attr_item.c:824:45: warning: passing argument 2 of
> 'xfs_attr_namecheck' makes integer from pointer without a cast [-
> Wint-conversion]
> 824 | if (!xfs_attr_namecheck(mp, attr_nname,
> | ^~~~~~~~~~
> | |
> | const void *
> In file included from fs/xfs/xfs_attr_item.c:22:
> fs/xfs/libxfs/xfs_attr.h:550:50: note: expected 'size_t' {aka
> 'long unsigned int'} but argument is of type 'const void *'
> 550 | bool xfs_attr_namecheck(const void *name, size_t length);
> | ~~~~~~~^~~~~~
> > > fs/xfs/xfs_attr_item.c:824:22: error: too many arguments to
> > > function 'xfs_attr_namecheck'
> 824 | if (!xfs_attr_namecheck(mp, attr_nname,
> | ^~~~~~~~~~~~~~~~~~
> In file included from fs/xfs/xfs_attr_item.c:22:
> fs/xfs/libxfs/xfs_attr.h:550:6: note: declared here
> 550 | bool xfs_attr_namecheck(const void *name, size_t length);
> | ^~~~~~~~~~~~~~~~~~
>
>
> vim +/xfs_attr_namecheck +824 fs/xfs/xfs_attr_item.c
>
> 756
> 757 STATIC int
> 758 xlog_recover_attri_commit_pass2(
> 759 struct xlog *log,
> 760 struct list_head *buffer_list,
> 761 struct xlog_recover_item *item,
> 762 xfs_lsn_t lsn)
> 763 {
> 764 struct xfs_mount *mp = log-
> >l_mp;
> 765 struct xfs_attri_log_item *attrip;
> 766 struct xfs_attri_log_format *attri_formatp;
> 767 struct xfs_attri_log_nameval *nv;
> 768 const void *attr_value =
> NULL;
> 769 const void *attr_name;
> 770 const void *attr_nname =
> NULL;
> 771 int i = 0;
> 772 int op, error = 0;
> 773
> 774 if (item->ri_total == 0) {
> 775 XFS_ERROR_REPORT(__func__,
> XFS_ERRLEVEL_LOW, mp);
> 776 return -EFSCORRUPTED;
> 777 }
> 778
> 779 attri_formatp = item->ri_buf[i].i_addr;
> 780 i++;
> 781
> 782 op = attri_formatp->alfi_op_flags &
> XFS_ATTRI_OP_FLAGS_TYPE_MASK;
> 783 switch (op) {
> 784 case XFS_ATTRI_OP_FLAGS_SET:
> 785 case XFS_ATTRI_OP_FLAGS_REPLACE:
> 786 if (item->ri_total != 3)
> 787 error = -EFSCORRUPTED;
> 788 break;
> 789 case XFS_ATTRI_OP_FLAGS_REMOVE:
> 790 if (item->ri_total != 2)
> 791 error = -EFSCORRUPTED;
> 792 break;
> 793 case XFS_ATTRI_OP_FLAGS_NVREPLACE:
> 794 if (item->ri_total != 4)
> 795 error = -EFSCORRUPTED;
> 796 break;
> 797 default:
> 798 error = -EFSCORRUPTED;
> 799 }
> 800
> 801 if (error) {
> 802 XFS_ERROR_REPORT(__func__,
> XFS_ERRLEVEL_LOW, mp);
> 803 return error;
> 804 }
> 805
> 806 /* Validate xfs_attri_log_format before the
> large memory allocation */
> 807 if (!xfs_attri_validate(mp, attri_formatp)) {
> 808 XFS_ERROR_REPORT(__func__,
> XFS_ERRLEVEL_LOW, mp);
> 809 return -EFSCORRUPTED;
> 810 }
> 811
> 812 attr_name = item->ri_buf[i].i_addr;
> 813 i++;
> 814
> 815 if (!xfs_attr_namecheck(attr_name,
> attri_formatp->alfi_name_len)) {
> 816 XFS_ERROR_REPORT(__func__,
> XFS_ERRLEVEL_LOW, mp);
> 817 return -EFSCORRUPTED;
> 818 }
> 819
> 820 if (attri_formatp->alfi_nname_len) {
> 821 attr_nname = item->ri_buf[i].i_addr;
> 822 i++;
> 823
> > 824 if (!xfs_attr_namecheck(mp, attr_nname,
> 825 attri_formatp-
> >alfi_nname_len,
> 826 attri_formatp-
> >alfi_attr_filter)) {
Oops, this signature change belongs to parent pointers. Will
separate...
> 827 XFS_ERROR_REPORT(__func__,
> XFS_ERRLEVEL_LOW, mp);
> 828 return -EFSCORRUPTED;
> 829 }
> 830 }
> 831
> 832 if (attri_formatp->alfi_value_len)
> 833 attr_value = item->ri_buf[i].i_addr;
> 834
> 835 /*
> 836 * Memory alloc failure will cause replay to
> abort. We attach the
> 837 * name/value buffer to the recovered incore
> log item and drop our
> 838 * reference.
> 839 */
> 840 nv = xfs_attri_log_nameval_alloc(attr_name,
> 841 attri_formatp->alfi_name_len,
> attr_nname,
> 842 attri_formatp->alfi_nname_len,
> attr_value,
> 843 attri_formatp->alfi_value_len);
> 844 if (!nv)
> 845 return -ENOMEM;
> 846
> 847 attrip = xfs_attri_init(mp, nv);
> 848 error = xfs_attri_copy_format(&item->ri_buf[0],
> &attrip->attri_format);
> 849 if (error)
> 850 goto out;
> 851
> 852 /*
> 853 * The ATTRI has two references. One for the
> ATTRD and one for ATTRI to
> 854 * ensure it makes it into the AIL. Insert the
> ATTRI into the AIL
> 855 * directly and drop the ATTRI reference. Note
> that
> 856 * xfs_trans_ail_update() drops the AIL lock.
> 857 */
> 858 xfs_trans_ail_insert(log->l_ailp, &attrip-
> >attri_item, lsn);
> 859 xfs_attri_release(attrip);
> 860 xfs_attri_log_nameval_put(nv);
> 861 return 0;
> 862 out:
> 863 xfs_attri_item_free(attrip);
> 864 xfs_attri_log_nameval_put(nv);
> 865 return error;
> 866 }
> 867
>
prev parent reply other threads:[~2022-08-30 18:06 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-29 21:36 [PATCH v2] xfs: Add new name to attri/d Allison Henderson
2022-08-30 16:31 ` kernel test robot
2022-08-30 18:05 ` Alli [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=8a59b8884e8dea7b05205be3a4c7f53f9da58371.camel@oracle.com \
--to=allison.henderson@oracle.com \
--cc=linux-xfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).