mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-09 06:43:09 +00:00
iomap: move the io_folios field out of struct iomap_ioend
The io_folios member in struct iomap_ioend counts the number of folios added to an ioend. It is only used at submission time and can thus be moved to iomap_writepage_ctx instead. Signed-off-by: Christoph Hellwig <hch@lst.de> Link: https://lore.kernel.org/r/20231207072710.176093-4-hch@lst.de Reviewed-by: Ritesh Harjani (IBM) <ritesh.list@gmail.com> Signed-off-by: Christian Brauner <brauner@kernel.org>
This commit is contained in:
parent
80d012e988
commit
432acd550e
@ -1675,10 +1675,11 @@ iomap_alloc_ioend(struct inode *inode, struct iomap_writepage_ctx *wpc,
|
||||
ioend->io_flags = wpc->iomap.flags;
|
||||
ioend->io_inode = inode;
|
||||
ioend->io_size = 0;
|
||||
ioend->io_folios = 0;
|
||||
ioend->io_offset = offset;
|
||||
ioend->io_bio = bio;
|
||||
ioend->io_sector = sector;
|
||||
|
||||
wpc->nr_folios = 0;
|
||||
return ioend;
|
||||
}
|
||||
|
||||
@ -1722,7 +1723,7 @@ iomap_can_add_to_ioend(struct iomap_writepage_ctx *wpc, loff_t offset,
|
||||
* also prevents long tight loops ending page writeback on all the
|
||||
* folios in the ioend.
|
||||
*/
|
||||
if (wpc->ioend->io_folios >= IOEND_BATCH_SIZE)
|
||||
if (wpc->nr_folios >= IOEND_BATCH_SIZE)
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
@ -1819,7 +1820,7 @@ iomap_writepage_map(struct iomap_writepage_ctx *wpc,
|
||||
count++;
|
||||
}
|
||||
if (count)
|
||||
wpc->ioend->io_folios++;
|
||||
wpc->nr_folios++;
|
||||
|
||||
WARN_ON_ONCE(!wpc->ioend && !list_empty(&submit_list));
|
||||
WARN_ON_ONCE(!folio_test_locked(folio));
|
||||
|
@ -293,7 +293,6 @@ struct iomap_ioend {
|
||||
struct list_head io_list; /* next ioend in chain */
|
||||
u16 io_type;
|
||||
u16 io_flags; /* IOMAP_F_* */
|
||||
u32 io_folios; /* folios added to ioend */
|
||||
struct inode *io_inode; /* file being written to */
|
||||
size_t io_size; /* size of the extent */
|
||||
loff_t io_offset; /* offset in the file */
|
||||
@ -329,6 +328,7 @@ struct iomap_writepage_ctx {
|
||||
struct iomap iomap;
|
||||
struct iomap_ioend *ioend;
|
||||
const struct iomap_writeback_ops *ops;
|
||||
u32 nr_folios; /* folios added to the ioend */
|
||||
};
|
||||
|
||||
void iomap_finish_ioends(struct iomap_ioend *ioend, int error);
|
||||
|
Loading…
Reference in New Issue
Block a user