diff options
author | Christoph Hellwig <hch@lst.de> | 2018-07-11 22:25:58 -0700 |
---|---|---|
committer | Darrick J. Wong <darrick.wong@oracle.com> | 2018-07-11 22:25:58 -0700 |
commit | c57371a16d074bb4eafe6b73f29360085ecb2064 (patch) | |
tree | 124ef8875e28579134477ffcc51409e0586cc2f5 /fs/xfs/xfs_aops.c | |
parent | 91cdfd1761659f338e673aca72af3d0d50b88847 (diff) | |
download | linux-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.c | 9 |
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; } |