summaryrefslogtreecommitdiffstats
path: root/fs/xfs/xfs_aops.c
diff options
context:
space:
mode:
authorDarrick J. Wong <darrick.wong@oracle.com>2016-03-07 09:32:14 +1100
committerDave Chinner <david@fromorbit.com>2016-03-07 09:32:14 +1100
commit0df61da8ac5b7acb1db6cee142822ebe4724c739 (patch)
tree67955be0173dc87327bd70ddfc339deaae028897 /fs/xfs/xfs_aops.c
parente10de3723c53378e7cf441529f563c316fdc0dd3 (diff)
downloadop-kernel-dev-0df61da8ac5b7acb1db6cee142822ebe4724c739.zip
op-kernel-dev-0df61da8ac5b7acb1db6cee142822ebe4724c739.tar.gz
xfs: ioends require logically contiguous file offsets
We need to create a new ioend if the current writepage call isn't logically contiguous with the range contained in the previous ioend. Hopefully writepage gets called in order of increasing file offset. Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> Reviewed-by: Dave Chinner <dchinner@redhat.com> Signed-off-by: Dave Chinner <david@fromorbit.com>
Diffstat (limited to 'fs/xfs/xfs_aops.c')
-rw-r--r--fs/xfs/xfs_aops.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/xfs/xfs_aops.c b/fs/xfs/xfs_aops.c
index 46dc921..b125f90 100644
--- a/fs/xfs/xfs_aops.c
+++ b/fs/xfs/xfs_aops.c
@@ -520,7 +520,8 @@ xfs_add_to_ioend(
struct list_head *iolist)
{
if (!wpc->ioend || wpc->io_type != wpc->ioend->io_type ||
- bh->b_blocknr != wpc->last_block + 1) {
+ bh->b_blocknr != wpc->last_block + 1 ||
+ offset != wpc->ioend->io_offset + wpc->ioend->io_size) {
struct xfs_ioend *new;
if (wpc->ioend)
OpenPOWER on IntegriCloud