Lines Matching refs:bio
104 static struct bio *
105 bl_submit_bio(struct bio *bio) in bl_submit_bio() argument
107 if (bio) { in bl_submit_bio()
108 get_parallel(bio->bi_private); in bl_submit_bio()
110 bio_op(bio) == READ ? "read" : "write", in bl_submit_bio()
111 bio->bi_iter.bi_size, in bl_submit_bio()
112 (unsigned long long)bio->bi_iter.bi_sector); in bl_submit_bio()
113 submit_bio(bio); in bl_submit_bio()
118 static struct bio *
122 struct bio *bio; in bl_alloc_init_bio() local
125 bio = bio_alloc(GFP_NOIO, npg); in bl_alloc_init_bio()
126 if (!bio && (current->flags & PF_MEMALLOC)) { in bl_alloc_init_bio()
127 while (!bio && (npg /= 2)) in bl_alloc_init_bio()
128 bio = bio_alloc(GFP_NOIO, npg); in bl_alloc_init_bio()
131 if (bio) { in bl_alloc_init_bio()
132 bio->bi_iter.bi_sector = disk_sector; in bl_alloc_init_bio()
133 bio_set_dev(bio, bdev); in bl_alloc_init_bio()
134 bio->bi_end_io = end_io; in bl_alloc_init_bio()
135 bio->bi_private = par; in bl_alloc_init_bio()
137 return bio; in bl_alloc_init_bio()
145 static struct bio *
146 do_add_page_to_bio(struct bio *bio, int npg, int rw, sector_t isect, in do_add_page_to_bio() argument
167 bio = bl_submit_bio(bio); in do_add_page_to_bio()
178 if (!bio) { in do_add_page_to_bio()
179 bio = bl_alloc_init_bio(npg, map->bdev, in do_add_page_to_bio()
181 if (!bio) in do_add_page_to_bio()
183 bio_set_op_attrs(bio, rw, 0); in do_add_page_to_bio()
185 if (bio_add_page(bio, page, *len, offset) < *len) { in do_add_page_to_bio()
186 bio = bl_submit_bio(bio); in do_add_page_to_bio()
189 return bio; in do_add_page_to_bio()
215 static void bl_end_io_read(struct bio *bio) in bl_end_io_read() argument
217 struct parallel_io *par = bio->bi_private; in bl_end_io_read()
219 if (bio->bi_status) { in bl_end_io_read()
228 bio_put(bio); in bl_end_io_read()
257 struct bio *bio = NULL; in bl_read_pagelist() local
286 bio = bl_submit_bio(bio); in bl_read_pagelist()
307 bio = bl_submit_bio(bio); in bl_read_pagelist()
315 bio = do_add_page_to_bio(bio, in bl_read_pagelist()
321 if (IS_ERR(bio)) { in bl_read_pagelist()
322 header->pnfs_error = PTR_ERR(bio); in bl_read_pagelist()
323 bio = NULL; in bl_read_pagelist()
340 bl_submit_bio(bio); in bl_read_pagelist()
346 static void bl_end_io_write(struct bio *bio) in bl_end_io_write() argument
348 struct parallel_io *par = bio->bi_private; in bl_end_io_write()
351 if (bio->bi_status) { in bl_end_io_write()
357 bio_put(bio); in bl_end_io_write()
402 struct bio *bio = NULL; in bl_write_pagelist() local
434 bio = bl_submit_bio(bio); in bl_write_pagelist()
445 bio = do_add_page_to_bio(bio, header->page_array.npages - i, in bl_write_pagelist()
449 if (IS_ERR(bio)) { in bl_write_pagelist()
450 header->pnfs_error = PTR_ERR(bio); in bl_write_pagelist()
451 bio = NULL; in bl_write_pagelist()
463 bl_submit_bio(bio); in bl_write_pagelist()