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>
* 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;
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;
}