diff options
author | Darrick J. Wong <darrick.wong@oracle.com> | 2016-03-07 09:32:14 +1100 |
---|---|---|
committer | Dave Chinner <david@fromorbit.com> | 2016-03-07 09:32:14 +1100 |
commit | 0df61da8ac5b7acb1db6cee142822ebe4724c739 (patch) | |
tree | 67955be0173dc87327bd70ddfc339deaae028897 /fs/xfs/xfs_aops.c | |
parent | e10de3723c53378e7cf441529f563c316fdc0dd3 (diff) | |
download | op-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.c | 3 |
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) |