Re: [PATCH] xfs: getattr ignore blocks beyond eof

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux