On Wed, Dec 18, 2013 at 02:14:39AM -0800, Christoph Hellwig wrote: > Equivalent to xfs_ilock_data_map_shared, except for the attribute fork. > > Make xfs_getbmap use it if called for the attribute fork instead of > xfs_ilock_data_map_shared. > > Signed-off-by: Christoph Hellwig <hch@xxxxxx> > > Index: xfs/fs/xfs/xfs_bmap_util.c > =================================================================== > --- xfs.orig/fs/xfs/xfs_bmap_util.c 2013-12-18 11:14:52.587953376 +0100 > +++ xfs/fs/xfs/xfs_bmap_util.c 2013-12-18 11:15:29.367952621 +0100 > @@ -617,22 +617,27 @@ xfs_getbmap( > return XFS_ERROR(ENOMEM); > > xfs_ilock(ip, XFS_IOLOCK_SHARED); > - if (whichfork == XFS_DATA_FORK && !(iflags & BMV_IF_DELALLOC)) { > - if (ip->i_delayed_blks || XFS_ISIZE(ip) > ip->i_d.di_size) { > + if (whichfork == XFS_DATA_FORK) { > + if (!(iflags & BMV_IF_DELALLOC) && > + (ip->i_delayed_blks || XFS_ISIZE(ip) > ip->i_d.di_size)) { > error = -filemap_write_and_wait(VFS_I(ip)->i_mapping); > if (error) > goto out_unlock_iolock; > + > + /* > + * Even after flushing the inode, there can still be > + * delalloc blocks on the inode beyond EOF due to > + * speculative preallocation. These are not removed This one has a 'p'. Reviewed-by: Ben Myers <bpm@xxxxxxx> _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs