[XFS] Flush and invalidate dirty pages at the start of a direct read also,
else we can hit a delalloc-extents-via-direct-io BUG. SGI-PV: 949916 SGI-Modid: xfs-linux-melb:xfs-kern:25483a Signed-off-by: Nathan Scott <nathans@sgi.com>
This commit is contained in:
parent
ce9d37c257
commit
9cea236492
1 changed files with 4 additions and 0 deletions
|
@ -270,6 +270,10 @@ xfs_read(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (unlikely((ioflags & IO_ISDIRECT) && VN_CACHED(vp)))
|
||||||
|
VOP_FLUSHINVAL_PAGES(vp, ctooff(offtoct(*offset)),
|
||||||
|
-1, FI_REMAPF_LOCKED);
|
||||||
|
|
||||||
xfs_rw_enter_trace(XFS_READ_ENTER, &ip->i_iocore,
|
xfs_rw_enter_trace(XFS_READ_ENTER, &ip->i_iocore,
|
||||||
(void *)iovp, segs, *offset, ioflags);
|
(void *)iovp, segs, *offset, ioflags);
|
||||||
ret = __generic_file_aio_read(iocb, iovp, segs, offset);
|
ret = __generic_file_aio_read(iocb, iovp, segs, offset);
|
||||||
|
|
Loading…
Reference in a new issue