Message ID | 1460044324-5298-4-git-send-email-hch@lst.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Thu, Apr 07, 2016 at 08:51:57AM -0700, Christoph Hellwig wrote: > Signed-off-by: Christoph Hellwig <hch@lst.de> > --- > fs/xfs/xfs_file.c | 17 ++++++++--------- > 1 file changed, 8 insertions(+), 9 deletions(-) .... Looks fine. Do you want me to pull this directly into the XFS tree? Cheers, Dave.
On Fri, Apr 08, 2016 at 08:31:11AM +1000, Dave Chinner wrote: > On Thu, Apr 07, 2016 at 08:51:57AM -0700, Christoph Hellwig wrote: > > Signed-off-by: Christoph Hellwig <hch@lst.de> > > --- > > fs/xfs/xfs_file.c | 17 ++++++++--------- > > 1 file changed, 8 insertions(+), 9 deletions(-) > .... > > Looks fine. Do you want me to pull this directly into the XFS tree? The following patches depend on it, so everything should really go through Al's tree. -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Fri, Apr 08, 2016 at 12:43:12AM +0200, Christoph Hellwig wrote: > On Fri, Apr 08, 2016 at 08:31:11AM +1000, Dave Chinner wrote: > > On Thu, Apr 07, 2016 at 08:51:57AM -0700, Christoph Hellwig wrote: > > > Signed-off-by: Christoph Hellwig <hch@lst.de> > > > --- > > > fs/xfs/xfs_file.c | 17 ++++++++--------- > > > 1 file changed, 8 insertions(+), 9 deletions(-) > > .... > > > > Looks fine. Do you want me to pull this directly into the XFS tree? > > The following patches depend on it, so everything should really go > through Al's tree. No worries, just wanted to make sure. Cheers, Dave.
diff --git a/fs/xfs/xfs_file.c b/fs/xfs/xfs_file.c index 569938a..92f72fb 100644 --- a/fs/xfs/xfs_file.c +++ b/fs/xfs/xfs_file.c @@ -718,18 +718,19 @@ xfs_file_dio_aio_write( int unaligned_io = 0; int iolock; size_t count = iov_iter_count(from); - loff_t pos = iocb->ki_pos; loff_t end; struct iov_iter data; struct xfs_buftarg *target = XFS_IS_REALTIME_INODE(ip) ? mp->m_rtdev_targp : mp->m_ddev_targp; /* DIO must be aligned to device logical sector size */ - if (!IS_DAX(inode) && ((pos | count) & target->bt_logical_sectormask)) + if (!IS_DAX(inode) && + ((iocb->ki_pos | count) & target->bt_logical_sectormask)) return -EINVAL; /* "unaligned" here means not aligned to a filesystem block */ - if ((pos & mp->m_blockmask) || ((pos + count) & mp->m_blockmask)) + if ((iocb->ki_pos & mp->m_blockmask) || + ((iocb->ki_pos + count) & mp->m_blockmask)) unaligned_io = 1; /* @@ -760,8 +761,7 @@ xfs_file_dio_aio_write( if (ret) goto out; count = iov_iter_count(from); - pos = iocb->ki_pos; - end = pos + count - 1; + end = iocb->ki_pos + count - 1; /* * See xfs_file_read_iter() for why we do a full-file flush here. @@ -794,19 +794,18 @@ xfs_file_dio_aio_write( trace_xfs_file_direct_write(ip, count, iocb->ki_pos, 0); data = *from; - ret = mapping->a_ops->direct_IO(iocb, &data, pos); + ret = mapping->a_ops->direct_IO(iocb, &data, iocb->ki_pos); /* see generic_file_direct_write() for why this is necessary */ if (mapping->nrpages) { invalidate_inode_pages2_range(mapping, - pos >> PAGE_SHIFT, + iocb->ki_pos >> PAGE_SHIFT, end >> PAGE_SHIFT); } if (ret > 0) { - pos += ret; + iocb->ki_pos += ret; iov_iter_advance(from, ret); - iocb->ki_pos = pos; } out: xfs_rw_iunlock(ip, iolock);
Signed-off-by: Christoph Hellwig <hch@lst.de> --- fs/xfs/xfs_file.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-)