From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============4774876253231716729==" MIME-Version: 1.0 From: kernel test robot To: kbuild-all@lists.01.org Subject: Re: [PATCH 18/29] fsdax: decouple zeroing from the iomap buffered I/O code Date: Thu, 11 Nov 2021 16:30:06 +0800 Message-ID: <202111111647.OD2kh4m9-lkp@intel.com> In-Reply-To: <20211109083309.584081-19-hch@lst.de> List-Id: --===============4774876253231716729== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Hi Christoph, I love your patch! Yet something to improve: [auto build test ERROR on linus/master] [cannot apply to xfs-linux/for-next device-mapper-dm/for-next tytso-ext4/de= v v5.15 next-20211111] [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] url: https://github.com/0day-ci/linux/commits/Christoph-Hellwig/nvdimm-p= mem-move-dax_attribute_group-from-dax-to-pmem/20211109-173316 base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git = d2f38a3c6507b2520101f9a3807ed98f1bdc545a config: um-i386_defconfig (attached as .config) compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 reproduce (this is a W=3D1 build): # https://github.com/0day-ci/linux/commit/5ea2c91584999019cd215022c= ca4d292c9296294 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Christoph-Hellwig/nvdimm-pmem-move= -dax_attribute_group-from-dax-to-pmem/20211109-173316 git checkout 5ea2c91584999019cd215022cca4d292c9296294 # save the attached .config to linux build tree make W=3D1 ARCH=3Dum SUBARCH=3Di386 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All errors (new ones prefixed by >>): fs/ext4/inode.c: In function 'ext4_block_zero_page_range': >> fs/ext4/inode.c:3786:10: error: implicit declaration of function 'dax_ze= ro_range'; did you mean 'iomap_zero_range'? [-Werror=3Dimplicit-function-de= claration] 3786 | return dax_zero_range(inode, from, length, NULL, | ^~~~~~~~~~~~~~ | iomap_zero_range cc1: some warnings being treated as errors vim +3786 fs/ext4/inode.c 3762 = 3763 /* 3764 * ext4_block_zero_page_range() zeros out a mapping of length 'lengt= h' 3765 * starting from file offset 'from'. The range to be zero'd must 3766 * be contained with in one block. If the specified range exceeds 3767 * the end of the block it will be shortened to end of the block 3768 * that corresponds to 'from' 3769 */ 3770 static int ext4_block_zero_page_range(handle_t *handle, 3771 struct address_space *mapping, loff_t from, loff_t length) 3772 { 3773 struct inode *inode =3D mapping->host; 3774 unsigned offset =3D from & (PAGE_SIZE-1); 3775 unsigned blocksize =3D inode->i_sb->s_blocksize; 3776 unsigned max =3D blocksize - (offset & (blocksize - 1)); 3777 = 3778 /* 3779 * correct length if it does not fall between 3780 * 'from' and the end of the block 3781 */ 3782 if (length > max || length < 0) 3783 length =3D max; 3784 = 3785 if (IS_DAX(inode)) { > 3786 return dax_zero_range(inode, from, length, NULL, 3787 &ext4_iomap_ops); 3788 } 3789 return __ext4_block_zero_page_range(handle, mapping, from, length); 3790 } 3791 = --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org --===============4774876253231716729== Content-Type: application/gzip MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="config.gz" 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 --===============4774876253231716729==--