Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7bb41db3 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Dave Chinner
Browse files

xfs: handle 64-bit length in xfs_iozero



We'll want to use this code for large offsets now that we're
skipping holes and unwritten extents efficiently.  Also rename it to
xfs_zero_range to be a bit more descriptive, and tell the caller if
we actually did any zeroing.

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarDave Chinner <dchinner@redhat.com>
Signed-off-by: default avatarDave Chinner <david@fromorbit.com>
parent 459f0fbc
Loading
Loading
Loading
Loading
+6 −5
Original line number Diff line number Diff line
@@ -85,10 +85,11 @@ xfs_rw_ilock_demote(
 * Holes and unwritten extents will be left as-is as they already are zeroed.
 */
int
xfs_iozero(
xfs_zero_range(
	struct xfs_inode	*ip,
	loff_t			pos,
	size_t			count)
	xfs_off_t		pos,
	xfs_off_t		count,
	bool			*did_zero)
{
	return iomap_zero_range(VFS_I(ip), pos, count, NULL, &xfs_iomap_ops);
}
@@ -419,7 +420,7 @@ xfs_zero_last_block(
	if (isize + zero_len > offset)
		zero_len = offset - isize;
	*did_zeroing = true;
	return xfs_iozero(ip, isize, zero_len);
	return xfs_zero_range(ip, isize, zero_len, NULL);
}

/*
@@ -518,7 +519,7 @@ xfs_zero_eof(
		if ((zero_off + zero_len) > offset)
			zero_len = offset - zero_off;

		error = xfs_iozero(ip, zero_off, zero_len);
		error = xfs_zero_range(ip, zero_off, zero_len, NULL);
		if (error)
			return error;

+2 −1
Original line number Diff line number Diff line
@@ -434,7 +434,8 @@ int xfs_update_prealloc_flags(struct xfs_inode *ip,
				  enum xfs_prealloc_flags flags);
int	xfs_zero_eof(struct xfs_inode *ip, xfs_off_t offset,
		     xfs_fsize_t isize, bool *did_zeroing);
int	xfs_iozero(struct xfs_inode *ip, loff_t pos, size_t count);
int	xfs_zero_range(struct xfs_inode *ip, xfs_off_t pos, xfs_off_t count,
		bool *did_zero);
loff_t	__xfs_seek_hole_data(struct inode *inode, loff_t start,
			     loff_t eof, int whence);