From c57371a16d074bb4eafe6b73f29360085ecb2064 Mon Sep 17 00:00:00 2001 From: Christoph Hellwig Date: Wed, 11 Jul 2018 22:25:58 -0700 Subject: [PATCH] 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 Reviewed-by: Brian Foster Reviewed-by: Darrick J. Wong Signed-off-by: Darrick J. Wong --- fs/xfs/xfs_aops.c | 9 ++------- 1 file 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; }