[RFC PATCH 34/34] mm: add swap_bio_new common bio helper
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
- To: linux-xfs@xxxxxxxxxxxxxxx, linux-fsdevel@xxxxxxxxxxxxxxx, dm-devel@xxxxxxxxxx, linux-block@xxxxxxxxxxxxxxx, linux-kernel@xxxxxxxxxxxxxxx, drbd-dev@xxxxxxxxxxxxxxx, 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
- Subject: [RFC PATCH 34/34] mm: add swap_bio_new common bio helper
- From: Chaitanya Kulkarni <chaitanya.kulkarni@xxxxxxx>
- Date: Wed, 27 Jan 2021 23:11:33 -0800
- In-reply-to: <20210128071133.60335-1-chaitanya.kulkarni@wdc.com>
- Ironport-sdr: kU/TcTjD0qOIe9DpiQYG58Bm+/Ccv1VR9q9MbSLYCJcDxsYXg58FfJ4IRt58B4NxkNVfDbdytj s21PwC89VDuF5hS+RafTlPP8t3P0suk3Y5VwLjnZXD+i+5d9jSZDXND+GRBjxULUZ3c85u6o04 JqO3W0GPKxx+cl7kMZenjscbcuCeL/fcTQqLhS7uti1TzTZ48JB1sz48+vAlXlB4eotNg1OuoF n6rJC4yVRodam4I2q5bXC8ms8McaKidH/DFT28Z7lpl6i4Vf5OCt1ulYcSIc4zJNyictnHYxw4 D5Y=
- Ironport-sdr: 4Eotcj4z9YpFY9deAZB5+4sr0HDyIwAZNjbeLXmEavSawhZPY/y6XnAa8vDeqSOTKGFjR38nm6 3qkvQpcXaKYGeQThmlMM0WHSAHl77pQizT1kVoCqb70Me9Z+PjHnRkTw/0XOuFVuLrnVZx2mHZ I/fqIiSyUOSA3sl3fcn+ZmUjtnc6HbUqJ6Bgh0GOh3dJhh+7SU0mDbkLAS0Nksz1espajrZkfz /e40rOubOfy7vP7Jn+0uBVZWIPhiWNomkanA5v3cGRit8hCf5wRPgu+1g+RYURtCx6/hXBTrKZ qSEx0hPktBUkYL+5FCCieJmx
- Ironport-sdr: e2VgktU8Igp+G/4kwCau3Wofn5lcroMY0YPC7tNcu39YNL7JBNMa1+cKXT86WcuzihvSj94J7W 8sv8AfyOojzHeLFV1vgVT8Pm71/iwcQAmabu9Ufd/jwBkzWKoKpTzhJn2DWIwNp2e8mqIx3G5A LS7tN5JWZnYOGTkwZ/LMhdAEhsm6g9R10Edu6WiLHx+xz1R0nO/OSJcMH5j4uo+XVYn8ORNhbv mynrcW4WJ2Z8dThUFTylCCg25lF4TIegFSZNE+eSh2Iz0rquG/Dk4lImC2ZggxF5isWDJ8MWSG Bw0=
- References: <20210128071133.60335-1-chaitanya.kulkarni@wdc.com>
- 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
[Index of Archives]
[linux Cryptography]
[Asterisk App Development]
[PJ SIP]
[Gnu Gatekeeper]
[IETF Sipping]
[Info Cyrus]
[ALSA User]
[Fedora Linux Users]
[Linux SCTP]
[DCCP]
[Gimp]
[Yosemite News]
[Deep Creek Hot Springs]
[Yosemite Campsites]
[ISDN Cause Codes]