summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fs/xfs/linux-2.6/xfs_lrw.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/xfs/linux-2.6/xfs_lrw.c b/fs/xfs/linux-2.6/xfs_lrw.c
index ba07b83f988d..2a936bd38ce7 100644
--- a/fs/xfs/linux-2.6/xfs_lrw.c
+++ b/fs/xfs/linux-2.6/xfs_lrw.c
@@ -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,
(void *)iovp, segs, *offset, ioflags);
ret = __generic_file_aio_read(iocb, iovp, segs, offset);