mirror of
https://github.com/torvalds/linux
synced 2024-09-06 18:01:05 +00:00
iomap: convert iomap_writepages to writeack_iter
This removes one indirect function call per folio, and adds type safety by not casting through a void pointer. Based on a patch by Matthew Wilcox. Signed-off-by: Christoph Hellwig <hch@lst.de> Link: https://lore.kernel.org/r/20240412061614.1511629-1-hch@lst.de Reviewed-by: Darrick J. Wong <djwong@kernel.org> Signed-off-by: Christian Brauner <brauner@kernel.org>
This commit is contained in:
parent
4cece76496
commit
0fac04e4e0
|
@ -1958,18 +1958,13 @@ static int iomap_writepage_map(struct iomap_writepage_ctx *wpc,
|
|||
return error;
|
||||
}
|
||||
|
||||
static int iomap_do_writepage(struct folio *folio,
|
||||
struct writeback_control *wbc, void *data)
|
||||
{
|
||||
return iomap_writepage_map(data, wbc, folio);
|
||||
}
|
||||
|
||||
int
|
||||
iomap_writepages(struct address_space *mapping, struct writeback_control *wbc,
|
||||
struct iomap_writepage_ctx *wpc,
|
||||
const struct iomap_writeback_ops *ops)
|
||||
{
|
||||
int ret;
|
||||
struct folio *folio = NULL;
|
||||
int error;
|
||||
|
||||
/*
|
||||
* Writeback from reclaim context should never happen except in the case
|
||||
|
@ -1980,8 +1975,9 @@ iomap_writepages(struct address_space *mapping, struct writeback_control *wbc,
|
|||
return -EIO;
|
||||
|
||||
wpc->ops = ops;
|
||||
ret = write_cache_pages(mapping, wbc, iomap_do_writepage, wpc);
|
||||
return iomap_submit_ioend(wpc, ret);
|
||||
while ((folio = writeback_iter(mapping, wbc, folio, &error)))
|
||||
error = iomap_writepage_map(wpc, wbc, folio);
|
||||
return iomap_submit_ioend(wpc, error);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(iomap_writepages);
|
||||
|
||||
|
|
Loading…
Reference in a new issue