mirror of
git://git.yoctoproject.org/linux-yocto.git
synced 2025-10-22 15:03:53 +02:00
fs: use writeback_iter directly in mpage_writepages
Stop using write_cache_pages and use writeback_iter directly. This removes an indirect call per written folio and makes the code easier to follow. Signed-off-by: Christoph Hellwig <hch@lst.de> Link: https://lore.kernel.org/20250507062124.3933305-1-hch@lst.de Reviewed-by: Jan Kara <jack@suse.cz> Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com> Signed-off-by: Christian Brauner <brauner@kernel.org>
This commit is contained in:
parent
9f81d70702
commit
bb01e8cc10
13
fs/mpage.c
13
fs/mpage.c
|
@ -445,10 +445,9 @@ static void clean_buffers(struct folio *folio, unsigned first_unmapped)
|
|||
try_to_free_buffers(folio);
|
||||
}
|
||||
|
||||
static int __mpage_writepage(struct folio *folio, struct writeback_control *wbc,
|
||||
void *data)
|
||||
static int mpage_write_folio(struct writeback_control *wbc, struct folio *folio,
|
||||
struct mpage_data *mpd)
|
||||
{
|
||||
struct mpage_data *mpd = data;
|
||||
struct bio *bio = mpd->bio;
|
||||
struct address_space *mapping = folio->mapping;
|
||||
struct inode *inode = mapping->host;
|
||||
|
@ -656,14 +655,16 @@ mpage_writepages(struct address_space *mapping,
|
|||
struct mpage_data mpd = {
|
||||
.get_block = get_block,
|
||||
};
|
||||
struct folio *folio = NULL;
|
||||
struct blk_plug plug;
|
||||
int ret;
|
||||
int error;
|
||||
|
||||
blk_start_plug(&plug);
|
||||
ret = write_cache_pages(mapping, wbc, __mpage_writepage, &mpd);
|
||||
while ((folio = writeback_iter(mapping, wbc, folio, &error)))
|
||||
error = mpage_write_folio(wbc, folio, &mpd);
|
||||
if (mpd.bio)
|
||||
mpage_bio_submit_write(mpd.bio);
|
||||
blk_finish_plug(&plug);
|
||||
return ret;
|
||||
return error;
|
||||
}
|
||||
EXPORT_SYMBOL(mpage_writepages);
|
||||
|
|
Loading…
Reference in New Issue
Block a user