From: kernel test robot <lkp@intel.com>
To: Allison Henderson <allison.henderson@oracle.com>,
linux-xfs@vger.kernel.org
Cc: kbuild-all@lists.01.org
Subject: Re: [PATCH v2] xfs: Add new name to attri/d
Date: Wed, 31 Aug 2022 00:31:07 +0800 [thread overview]
Message-ID: <202208310018.1wKCQHzH-lkp@intel.com> (raw)
In-Reply-To: <20220829213613.1318499-1-allison.henderson@oracle.com>
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://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Allison-Henderson/xfs-Add-new-name-to-attri-d/20220830-053816
base: b90cb1053190353cc30f0fef0ef1f378ccc063c5
config: x86_64-rhel-8.3-kselftests (https://download.01.org/0day-ci/archive/20220831/202208310018.1wKCQHzH-lkp@intel.com/config)
compiler: gcc-11 (Debian 11.3.0-5) 11.3.0
reproduce (this is a W=1 build):
# https://github.com/intel-lab-lkp/linux/commit/68f33e68647f25b811773b237669cf26e6b43382
git remote add linux-review https://github.com/intel-lab-lkp/linux
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)) {
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
--
0-DAY CI Kernel Test Service
https://01.org/lkp
next prev parent reply other threads:[~2022-08-30 16:38 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 [this message]
2022-08-30 18:05 ` Alli
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=202208310018.1wKCQHzH-lkp@intel.com \
--to=lkp@intel.com \
--cc=allison.henderson@oracle.com \
--cc=kbuild-all@lists.01.org \
--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).