Lines Matching refs:bio
13 struct bio *bio) in blk_rq_append_bio() argument
15 if (!rq->bio) in blk_rq_append_bio()
16 blk_rq_bio_prep(q, rq, bio); in blk_rq_append_bio()
17 else if (!ll_back_merge_fn(q, rq, bio)) in blk_rq_append_bio()
20 rq->biotail->bi_next = bio; in blk_rq_append_bio()
21 rq->biotail = bio; in blk_rq_append_bio()
23 rq->__data_len += bio->bi_iter.bi_size; in blk_rq_append_bio()
28 static int __blk_rq_unmap_user(struct bio *bio) in __blk_rq_unmap_user() argument
32 if (bio) { in __blk_rq_unmap_user()
33 if (bio_flagged(bio, BIO_USER_MAPPED)) in __blk_rq_unmap_user()
34 bio_unmap_user(bio); in __blk_rq_unmap_user()
36 ret = bio_uncopy_user(bio); in __blk_rq_unmap_user()
67 struct bio *bio; in blk_rq_map_user_iov() local
89 bio = bio_copy_user_iov(q, map_data, iter, gfp_mask); in blk_rq_map_user_iov()
91 bio = bio_map_user_iov(q, iter, gfp_mask); in blk_rq_map_user_iov()
93 if (IS_ERR(bio)) in blk_rq_map_user_iov()
94 return PTR_ERR(bio); in blk_rq_map_user_iov()
97 bio->bi_flags |= (1 << BIO_NULL_MAPPED); in blk_rq_map_user_iov()
99 if (bio->bi_iter.bi_size != iter->count) { in blk_rq_map_user_iov()
105 bio_get(bio); in blk_rq_map_user_iov()
106 bio_endio(bio, 0); in blk_rq_map_user_iov()
107 __blk_rq_unmap_user(bio); in blk_rq_map_user_iov()
111 if (!bio_flagged(bio, BIO_USER_MAPPED)) in blk_rq_map_user_iov()
114 blk_queue_bounce(q, &bio); in blk_rq_map_user_iov()
115 bio_get(bio); in blk_rq_map_user_iov()
116 blk_rq_bio_prep(q, rq, bio); in blk_rq_map_user_iov()
145 int blk_rq_unmap_user(struct bio *bio) in blk_rq_unmap_user() argument
147 struct bio *mapped_bio; in blk_rq_unmap_user()
150 while (bio) { in blk_rq_unmap_user()
151 mapped_bio = bio; in blk_rq_unmap_user()
152 if (unlikely(bio_flagged(bio, BIO_BOUNCED))) in blk_rq_unmap_user()
153 mapped_bio = bio->bi_private; in blk_rq_unmap_user()
159 mapped_bio = bio; in blk_rq_unmap_user()
160 bio = bio->bi_next; in blk_rq_unmap_user()
187 struct bio *bio; in blk_rq_map_kern() local
197 bio = bio_copy_kern(q, kbuf, len, gfp_mask, reading); in blk_rq_map_kern()
199 bio = bio_map_kern(q, kbuf, len, gfp_mask); in blk_rq_map_kern()
201 if (IS_ERR(bio)) in blk_rq_map_kern()
202 return PTR_ERR(bio); in blk_rq_map_kern()
205 bio->bi_rw |= REQ_WRITE; in blk_rq_map_kern()
210 ret = blk_rq_append_bio(q, rq, bio); in blk_rq_map_kern()
213 bio_put(bio); in blk_rq_map_kern()
217 blk_queue_bounce(q, &rq->bio); in blk_rq_map_kern()