[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <202203311022.9gnVNhj6-lkp@intel.com>
Date: Thu, 31 Mar 2022 11:07:35 +0800
From: kernel test robot <lkp@...el.com>
To: Yi Wang <wang.yi59@....com.cn>, djwong@...nel.org
Cc: kbuild-all@...ts.01.org, linux-xfs@...r.kernel.org,
linux-kernel@...r.kernel.org, xue.zhihong@....com.cn,
wang.yi59@....com.cn, wang.liang82@....com.cn,
Cheng Lin <cheng.lin130@....com.cn>
Subject: Re: [PATCH] xfs: getattr ignore blocks beyond eof
Hi Yi,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on xfs-linux/for-next]
[also build test ERROR on v5.17 next-20220330]
[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/intel-lab-lkp/linux/commits/Yi-Wang/xfs-getattr-ignore-blocks-beyond-eof/20220331-082944
base: https://git.kernel.org/pub/scm/fs/xfs/xfs-linux.git for-next
config: sparc-randconfig-r005-20220330 (https://download.01.org/0day-ci/archive/20220331/202203311022.9gnVNhj6-lkp@intel.com/config)
compiler: sparc-linux-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/intel-lab-lkp/linux/commit/e560188227f8fed285a1bd736e5708de984f0596
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Yi-Wang/xfs-getattr-ignore-blocks-beyond-eof/20220331-082944
git checkout e560188227f8fed285a1bd736e5708de984f0596
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=sparc SHELL=/bin/bash fs/xfs/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@...el.com>
All errors (new ones prefixed by >>):
fs/xfs/xfs_bmap_util.c: In function 'xfs_free_eofblocks':
>> fs/xfs/xfs_bmap_util.c:756:26: error: 'end_fsb' undeclared (first use in this function)
756 | ip->i_last_fsb = end_fsb;
| ^~~~~~~
fs/xfs/xfs_bmap_util.c:756:26: note: each undeclared identifier is reported only once for each function it appears in
vim +/end_fsb +756 fs/xfs/xfs_bmap_util.c
710
711 /*
712 * This is called to free any blocks beyond eof. The caller must hold
713 * IOLOCK_EXCL unless we are in the inode reclaim path and have the only
714 * reference to the inode.
715 */
716 int
717 xfs_free_eofblocks(
718 struct xfs_inode *ip)
719 {
720 struct xfs_trans *tp;
721 struct xfs_mount *mp = ip->i_mount;
722 int error;
723
724 /* Attach the dquots to the inode up front. */
725 error = xfs_qm_dqattach(ip);
726 if (error)
727 return error;
728
729 /* Wait on dio to ensure i_size has settled. */
730 inode_dio_wait(VFS_I(ip));
731
732 error = xfs_trans_alloc(mp, &M_RES(mp)->tr_itruncate, 0, 0, 0, &tp);
733 if (error) {
734 ASSERT(xfs_is_shutdown(mp));
735 return error;
736 }
737
738 xfs_ilock(ip, XFS_ILOCK_EXCL);
739 xfs_trans_ijoin(tp, ip, 0);
740
741 /*
742 * Do not update the on-disk file size. If we update the on-disk file
743 * size and then the system crashes before the contents of the file are
744 * flushed to disk then the files may be full of holes (ie NULL files
745 * bug).
746 */
747 error = xfs_itruncate_extents_flags(&tp, ip, XFS_DATA_FORK,
748 XFS_ISIZE(ip), XFS_BMAPI_NODISCARD);
749 if (error)
750 goto err_cancel;
751
752 error = xfs_trans_commit(tp);
753 if (error)
754 goto out_unlock;
755
> 756 ip->i_last_fsb = end_fsb;
757 xfs_inode_clear_eofblocks_tag(ip);
758 goto out_unlock;
759
760 err_cancel:
761 /*
762 * If we get an error at this point we simply don't
763 * bother truncating the file.
764 */
765 xfs_trans_cancel(tp);
766 out_unlock:
767 xfs_iunlock(ip, XFS_ILOCK_EXCL);
768 return error;
769 }
770
--
0-DAY CI Kernel Test Service
https://01.org/lkp
Powered by blists - more mailing lists