[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RFC PATCH 34/34] mm: add swap_bio_new common bio helper
- To: linux-xfs@xxxxxxxxxxxxxxx, linux-fsdevel@xxxxxxxxxxxxxxx, dm-devel@xxxxxxxxxx, linux-block@xxxxxxxxxxxxxxx, linux-kernel@xxxxxxxxxxxxxxx, drbd-dev@xxxxxxxxxxxxxxxx, xen-devel@xxxxxxxxxxxxxxxxxxxx, linux-nvme@xxxxxxxxxxxxxxxxxxx, linux-scsi@xxxxxxxxxxxxxxx, target-devel@xxxxxxxxxxxxxxx, linux-fscrypt@xxxxxxxxxxxxxxx, jfs-discussion@xxxxxxxxxxxxxxxxxxxxx, linux-nilfs@xxxxxxxxxxxxxxx, ocfs2-devel@xxxxxxxxxxxxxx, linux-pm@xxxxxxxxxxxxxxx, linux-mm@xxxxxxxxx
- From: Chaitanya Kulkarni <chaitanya.kulkarni@xxxxxxx>
- Date: Wed, 27 Jan 2021 23:11:33 -0800
- Cc: axboe@xxxxxxxxx, philipp.reisner@xxxxxxxxxx, lars.ellenberg@xxxxxxxxxx, konrad.wilk@xxxxxxxxxx, roger.pau@xxxxxxxxxx, minchan@xxxxxxxxxx, ngupta@xxxxxxxxxx, sergey.senozhatsky.work@xxxxxxxxx, agk@xxxxxxxxxx, snitzer@xxxxxxxxxx, hch@xxxxxx, sagi@xxxxxxxxxxx, chaitanya.kulkarni@xxxxxxx, martin.petersen@xxxxxxxxxx, viro@xxxxxxxxxxxxxxxxxx, tytso@xxxxxxx, jaegeuk@xxxxxxxxxx, ebiggers@xxxxxxxxxx, djwong@xxxxxxxxxx, shaggy@xxxxxxxxxx, konishi.ryusuke@xxxxxxxxx, mark@xxxxxxxxxx, jlbec@xxxxxxxxxxxx, joseph.qi@xxxxxxxxxxxxxxxxx, damien.lemoal@xxxxxxx, naohiro.aota@xxxxxxx, jth@xxxxxxxxxx, rjw@xxxxxxxxxxxxx, len.brown@xxxxxxxxx, pavel@xxxxxx, akpm@xxxxxxxxxxxxxxxxxxxx, hare@xxxxxxx, gustavoars@xxxxxxxxxx, tiwai@xxxxxxx, alex.shi@xxxxxxxxxxxxxxxxx, asml.silence@xxxxxxxxx, ming.lei@xxxxxxxxxx, tj@xxxxxxxxxx, osandov@xxxxxx, bvanassche@xxxxxxx, jefflexu@xxxxxxxxxxxxxxxxx
- Delivery-date: Thu, 28 Jan 2021 07:20:04 +0000
- Ironport-sdr: 3pkBAcaoGuzV06ZtFef2zlOmet03jibTng12LemyungsglWByqz0lAOXHs/dgDdf6Hmxp3U3mK 2PBv0jXUnSSZKC2hBxLtb8U8XgKI1ypp5ohV8zjEND2/pwge+FS3O6eVrd8bV41JaQ/4Ozfmao EnR0W4YVvaNDpqdNFQZ/eHH36r+Zf9857F1cLnc+pFS/4xjmdd7zTscnH0/o42q0UQD/xCBwm0 9Lj9jZn75uxqMCSvHQM8eJI1DeQzDDMqshwRvne7lh+FXFp0wLFu/wZyw5AsOqqGxzt8mHZQg2 cXs=
- Ironport-sdr: 1LA7JLuevG4sT6KnJTsZsAaEQzYUxu0PSeh4AyFNx6wcL6cUqYUDuodSGWXGu2OHuYZeBHfVoe XOjZBvQNOEyVrm6UpvGNZfqUgyWtMvIc4dq/IA/UQhv3FWQUbbtIYkr7LdaDowEmx/blflCYQj h3wDra5qkbM1aFk81MrE+9gb1+MnImKxNX1fi2j6J6FU9D7psBjL1QhZ9rMIs5kr9QGVfHOB+7 KCKhpgru2+vjZTcck6iQM7J28RwtRjHz5UEHrIVsJkXjru9KqamZhA4MnvUaGuOX0TgXZGzFoS p71m4ds5sYou8SgOWEM253xh
- Ironport-sdr: e2VgktU8Igp+G/4kwCau3Wofn5lcroMY0YPC7tNcu39YNL7JBNMa1+cKXT86WcuzihvSj94J7W 8sv8AfyOojzHeLFV1vgVT8Pm71/iwcQAmabu9Ufd/jwBkzWKoKpTzhJn2DWIwNp2e8mqIx3G5A LS7tN5JWZnYOGTkwZ/LMhdAEhsm6g9R10Edu6WiLHx+xz1R0nO/OSJcMH5j4uo+XVYn8ORNhbv mynrcW4WJ2Z8dThUFTylCCg25lF4TIegFSZNE+eSh2Iz0rquG/Dk4lImC2ZggxF5isWDJ8MWSG Bw0=
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
- Wdcironportexception: Internal
Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@xxxxxxx>
---
mm/page_io.c | 26 ++++++++++++++++----------
1 file changed, 16 insertions(+), 10 deletions(-)
diff --git a/mm/page_io.c b/mm/page_io.c
index 7579485ccb5e..cc30c9a0b0a7 100644
--- a/mm/page_io.c
+++ b/mm/page_io.c
@@ -287,6 +287,17 @@ static void bio_associate_blkg_from_page(struct bio *bio,
struct page *page)
#define bio_associate_blkg_from_page(bio, page) do { } while (0)
#endif /* CONFIG_MEMCG && CONFIG_BLK_CGROUP */
+static inline struct bio *swap_bio_new(struct block_device *dev,
+ unsigned op, unsigned opf, gfp_t gfp, struct page *p,
+ bio_end_io_t *end_io)
+{
+ struct bio *bio = bio_new(dev, swap_page_sector(p), op, opf, 1, gfp);
+
+ bio->bi_end_io = end_io;
+ bio_add_page(bio, p, thp_size(p), 0);
+ return bio;
+}
+
int __swap_writepage(struct page *page, struct writeback_control *wbc,
bio_end_io_t end_write_func)
{
@@ -342,11 +353,9 @@ int __swap_writepage(struct page *page, struct
writeback_control *wbc,
return 0;
}
- bio = bio_new(sis->bdev, swap_page_sector(page), REQ_OP_WRITE,
- REQ_SWAP | wbc_to_write_flags(wbc), 1, GFP_NOIO);
- bio->bi_end_io = end_write_func;
- bio_add_page(bio, page, thp_size(page), 0);
-
+ bio = swap_bio_new(sis->bdev, REQ_OP_WRITE,
+ REQ_SWAP | wbc_to_write_flags(wbc), GFP_KERNEL,
+ page, end_write_func);
bio_associate_blkg_from_page(bio, page);
count_swpout_vm_event(page);
set_page_writeback(page);
@@ -406,11 +415,8 @@ int swap_readpage(struct page *page, bool synchronous)
}
ret = 0;
- bio = bio_new(sis->bdev, swap_page_sector(page), REQ_OP_READ, 0, 1,
- GFP_KERNEL);
- bio->bi_end_io = end_swap_bio_read;
- bio_add_page(bio, page, thp_size(page), 0);
-
+ bio = swap_bio_new(sis->bdev, REQ_OP_READ, 0, GFP_KERNEL, page,
+ end_swap_bio_read);
disk = bio->bi_bdev->bd_disk;
/*
* Keep this task valid during swap readpage because the oom killer may
--
2.22.1
|