diff options
author | Mark Brown <broonie@kernel.org> | 2014-09-18 10:49:28 -0700 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2014-09-18 10:49:28 -0700 |
commit | d831fd1b46d04e5c8c8a0431c321578d25852695 (patch) | |
tree | 53a685712d0f0debe66de80c1f0a5e545d0de7e2 /fs/xfs/xfs_file.c | |
parent | c95c4e2a6bb8d44f9a8f59eadd99a9a615c53112 (diff) | |
parent | 339f8f37f0203884332585e38c06536c8477d475 (diff) |
Merge tag 'v3.10.55' into linux-linaro-lsklsk-v3.10-14.09
This is the 3.10.55 stable release
Diffstat (limited to 'fs/xfs/xfs_file.c')
-rw-r--r-- | fs/xfs/xfs_file.c | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/fs/xfs/xfs_file.c b/fs/xfs/xfs_file.c index a5f2042aec8b..9f457fedbcfc 100644 --- a/fs/xfs/xfs_file.c +++ b/fs/xfs/xfs_file.c @@ -298,7 +298,16 @@ xfs_file_aio_read( xfs_rw_iunlock(ip, XFS_IOLOCK_EXCL); return ret; } - truncate_pagecache_range(VFS_I(ip), pos, -1); + + /* + * Invalidate whole pages. This can return an error if + * we fail to invalidate a page, but this should never + * happen on XFS. Warn if it does fail. + */ + ret = invalidate_inode_pages2_range(VFS_I(ip)->i_mapping, + pos >> PAGE_CACHE_SHIFT, -1); + WARN_ON_ONCE(ret); + ret = 0; } xfs_rw_ilock_demote(ip, XFS_IOLOCK_EXCL); } @@ -677,7 +686,15 @@ xfs_file_dio_aio_write( pos, -1); if (ret) goto out; - truncate_pagecache_range(VFS_I(ip), pos, -1); + /* + * Invalidate whole pages. This can return an error if + * we fail to invalidate a page, but this should never + * happen on XFS. Warn if it does fail. + */ + ret = invalidate_inode_pages2_range(VFS_I(ip)->i_mapping, + pos >> PAGE_CACHE_SHIFT, -1); + WARN_ON_ONCE(ret); + ret = 0; } /* |