Skip to content

Commit

Permalink
xfs: handle 64-bit length in xfs_iozero
Browse files Browse the repository at this point in the history
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: Christoph Hellwig <hch@lst.de>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
  • Loading branch information
Christoph Hellwig authored and Dave Chinner committed Jun 20, 2016
1 parent 459f0fb commit 7bb41db
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 6 deletions.
11 changes: 6 additions & 5 deletions fs/xfs/xfs_file.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Expand Down Expand Up @@ -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);
}

/*
Expand Down Expand Up @@ -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;

Expand Down
3 changes: 2 additions & 1 deletion fs/xfs/xfs_inode.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand Down

0 comments on commit 7bb41db

Please sign in to comment.