[PATCH 2/8] xfs: factor common post-write isize handling code
Alex Elder
aelder at sgi.com
Tue Jan 4 19:54:14 CST 2011
On Tue, 2011-01-04 at 15:48 +1100, Dave Chinner wrote:
> From: Dave Chinner <dchinner at redhat.com>
>
With one exception noted below, this looks good.
Reviewed-by: Alex Elder <aelder at sgi.com>
> Signed-off-by: Dave Chinner <dchinner at redhat.com>
> ---
> fs/xfs/linux-2.6/xfs_file.c | 52 +++++++++++++++++++++++-------------------
> 1 files changed, 28 insertions(+), 24 deletions(-)
. . .
> @@ -742,16 +755,7 @@ write_retry:
>
> current->backing_dev_info = NULL;
>
> - isize = i_size_read(inode);
> - if (unlikely(ret < 0 && ret != -EFAULT && iocb->ki_pos > isize))
> - iocb->ki_pos = isize;
> -
> - if (iocb->ki_pos > ip->i_size) {
> - xfs_ilock(ip, XFS_ILOCK_EXCL);
> - if (iocb->ki_pos > ip->i_size)
> - ip->i_size = iocb->ki_pos;
> - xfs_iunlock(ip, XFS_ILOCK_EXCL);
> - }
> + xfs_aio_write_isize_update(inode, &iocb->ki_pos, ret);
>
> if (ret <= 0)
> goto out_unlock_internal;
Just below this point in the original code there is a
call to XFS_STATS_ADD(xs_write_bytes, ret); that also
needs to be removed, because xfs_aio_write_isize_update()
now does it for you.
More information about the xfs
mailing list