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@xxxxxxxxx/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@xxxxxxxxx> 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