summaryrefslogtreecommitdiffstats
path: root/fs/xfs/xfs_aops.c
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2018-07-11 22:25:58 -0700
committerDarrick J. Wong <darrick.wong@oracle.com>2018-07-11 22:25:58 -0700
commitc57371a16d074bb4eafe6b73f29360085ecb2064 (patch)
tree124ef8875e28579134477ffcc51409e0586cc2f5 /fs/xfs/xfs_aops.c
parent91cdfd1761659f338e673aca72af3d0d50b88847 (diff)
downloadlinux-stable-c57371a16d074bb4eafe6b73f29360085ecb2064.tar.gz
linux-stable-c57371a16d074bb4eafe6b73f29360085ecb2064.tar.bz2
linux-stable-c57371a16d074bb4eafe6b73f29360085ecb2064.zip
xfs: don't clear imap_valid for a non-uptodate buffers
Finding a buffer that isn't uptodate doesn't invalidate the mapping for any given block. The last_sector check will already take care of starting another ioend as soon as we find any non-update buffer, and if the current mapping doesn't include the next uptodate buffer the xfs_imap_valid check will take care of it. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Brian Foster <bfoster@redhat.com> Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com> Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Diffstat (limited to 'fs/xfs/xfs_aops.c')
-rw-r--r--fs/xfs/xfs_aops.c9
1 files changed, 2 insertions, 7 deletions
diff --git a/fs/xfs/xfs_aops.c b/fs/xfs/xfs_aops.c
index df80a383ccd8..1d1cb917cc6e 100644
--- a/fs/xfs/xfs_aops.c
+++ b/fs/xfs/xfs_aops.c
@@ -863,10 +863,8 @@ xfs_writepage_map(
* meaningless for holes (!mapped && uptodate), so skip
* buffers covering holes here.
*/
- if (!buffer_mapped(bh) && buffer_uptodate(bh)) {
- wpc->imap_valid = false;
+ if (!buffer_mapped(bh) && buffer_uptodate(bh))
continue;
- }
if (buffer_unwritten(bh))
new_type = XFS_IO_UNWRITTEN;
@@ -879,11 +877,8 @@ xfs_writepage_map(
ASSERT(buffer_mapped(bh));
/*
* This buffer is not uptodate and will not be
- * written to disk. Ensure that we will put any
- * subsequent writeable buffers into a new
- * ioend.
+ * written to disk.
*/
- wpc->imap_valid = false;
continue;
}