hc
2024-09-20 cf4ce59b3b70238352c7f1729f0f7223214828ad
kernel/fs/ext4/page-io.c
....@@ -416,7 +416,8 @@
416416
417417 static void io_submit_add_bh(struct ext4_io_submit *io,
418418 struct inode *inode,
419
- struct page *page,
419
+ struct page *pagecache_page,
420
+ struct page *bounce_page,
420421 struct buffer_head *bh)
421422 {
422423 int ret;
....@@ -430,10 +431,11 @@
430431 io_submit_init_bio(io, bh);
431432 io->io_bio->bi_write_hint = inode->i_write_hint;
432433 }
433
- ret = bio_add_page(io->io_bio, page, bh->b_size, bh_offset(bh));
434
+ ret = bio_add_page(io->io_bio, bounce_page ?: pagecache_page,
435
+ bh->b_size, bh_offset(bh));
434436 if (ret != bh->b_size)
435437 goto submit_and_retry;
436
- wbc_account_cgroup_owner(io->io_wbc, page, bh->b_size);
438
+ wbc_account_cgroup_owner(io->io_wbc, pagecache_page, bh->b_size);
437439 io->io_next_block++;
438440 }
439441
....@@ -551,8 +553,7 @@
551553 do {
552554 if (!buffer_async_write(bh))
553555 continue;
554
- io_submit_add_bh(io, inode,
555
- bounce_page ? bounce_page : page, bh);
556
+ io_submit_add_bh(io, inode, page, bounce_page, bh);
556557 nr_submitted++;
557558 clear_buffer_dirty(bh);
558559 } while ((bh = bh->b_this_page) != head);