Lines Matching refs:bio

29 static struct bio *get_swap_bio(gfp_t gfp_flags,  in get_swap_bio()
32 struct bio *bio; in get_swap_bio() local
34 bio = bio_alloc(gfp_flags, 1); in get_swap_bio()
35 if (bio) { in get_swap_bio()
38 bio->bi_iter.bi_sector = map_swap_page(page, &bdev); in get_swap_bio()
39 bio_set_dev(bio, bdev); in get_swap_bio()
40 bio->bi_iter.bi_sector <<= PAGE_SHIFT - 9; in get_swap_bio()
41 bio->bi_end_io = end_io; in get_swap_bio()
43 bio_add_page(bio, page, thp_size(page), 0); in get_swap_bio()
45 return bio; in get_swap_bio()
48 void end_swap_bio_write(struct bio *bio) in end_swap_bio_write() argument
50 struct page *page = bio_first_page_all(bio); in end_swap_bio_write()
52 if (bio->bi_status) { in end_swap_bio_write()
64 MAJOR(bio_dev(bio)), MINOR(bio_dev(bio)), in end_swap_bio_write()
65 (unsigned long long)bio->bi_iter.bi_sector); in end_swap_bio_write()
69 bio_put(bio); in end_swap_bio_write()
120 static void end_swap_bio_read(struct bio *bio) in end_swap_bio_read() argument
122 struct page *page = bio_first_page_all(bio); in end_swap_bio_read()
123 struct task_struct *waiter = bio->bi_private; in end_swap_bio_read()
125 if (bio->bi_status) { in end_swap_bio_read()
129 MAJOR(bio_dev(bio)), MINOR(bio_dev(bio)), in end_swap_bio_read()
130 (unsigned long long)bio->bi_iter.bi_sector); in end_swap_bio_read()
138 WRITE_ONCE(bio->bi_private, NULL); in end_swap_bio_read()
139 bio_put(bio); in end_swap_bio_read()
291 static void bio_associate_blkg_from_page(struct bio *bio, struct page *page) in bio_associate_blkg_from_page() argument
300 bio_associate_blkg_from_css(bio, css); in bio_associate_blkg_from_page()
304 #define bio_associate_blkg_from_page(bio, page) do { } while (0) argument
310 struct bio *bio; in __swap_writepage() local
362 bio = get_swap_bio(GFP_NOIO, page, end_write_func); in __swap_writepage()
363 if (bio == NULL) { in __swap_writepage()
368 bio->bi_opf = REQ_OP_WRITE | REQ_SWAP | wbc_to_write_flags(wbc); in __swap_writepage()
369 bio_associate_blkg_from_page(bio, page); in __swap_writepage()
373 submit_bio(bio); in __swap_writepage()
380 struct bio *bio; in swap_readpage() local
428 bio = get_swap_bio(GFP_KERNEL, page, end_swap_bio_read); in swap_readpage()
429 if (bio == NULL) { in swap_readpage()
434 disk = bio->bi_disk; in swap_readpage()
439 bio_set_op_attrs(bio, REQ_OP_READ, 0); in swap_readpage()
441 bio->bi_opf |= REQ_HIPRI; in swap_readpage()
443 bio->bi_private = current; in swap_readpage()
446 bio_get(bio); in swap_readpage()
447 qc = submit_bio(bio); in swap_readpage()
450 if (!READ_ONCE(bio->bi_private)) in swap_readpage()
457 bio_put(bio); in swap_readpage()