Lines Matching refs:bio

31 		      struct bio *bio)  in blk_rq_append_bio()  argument
33 if (!rq->bio) in blk_rq_append_bio()
34 blk_rq_bio_prep(q, rq, bio); in blk_rq_append_bio()
35 else if (!ll_back_merge_fn(q, rq, bio)) in blk_rq_append_bio()
38 rq->biotail->bi_next = bio; in blk_rq_append_bio()
39 rq->biotail = bio; in blk_rq_append_bio()
41 rq->__data_len += bio->bi_iter.bi_size; in blk_rq_append_bio()
46 static int __blk_rq_unmap_user(struct bio *bio) in __blk_rq_unmap_user() argument
50 if (bio) { in __blk_rq_unmap_user()
51 if (bio_flagged(bio, BIO_USER_MAPPED)) in __blk_rq_unmap_user()
52 bio_unmap_user(bio); in __blk_rq_unmap_user()
54 ret = bio_uncopy_user(bio); in __blk_rq_unmap_user()
85 struct bio *bio; in blk_rq_map_user_iov() local
111 bio = bio_copy_user_iov(q, map_data, iter, gfp_mask); in blk_rq_map_user_iov()
113 bio = bio_map_user_iov(q, iter, gfp_mask); in blk_rq_map_user_iov()
115 if (IS_ERR(bio)) in blk_rq_map_user_iov()
116 return PTR_ERR(bio); in blk_rq_map_user_iov()
119 bio_set_flag(bio, BIO_NULL_MAPPED); in blk_rq_map_user_iov()
121 if (bio->bi_iter.bi_size != iter->count) { in blk_rq_map_user_iov()
127 bio_get(bio); in blk_rq_map_user_iov()
128 bio_endio(bio); in blk_rq_map_user_iov()
129 __blk_rq_unmap_user(bio); in blk_rq_map_user_iov()
133 if (!bio_flagged(bio, BIO_USER_MAPPED)) in blk_rq_map_user_iov()
136 blk_queue_bounce(q, &bio); in blk_rq_map_user_iov()
137 bio_get(bio); in blk_rq_map_user_iov()
138 blk_rq_bio_prep(q, rq, bio); in blk_rq_map_user_iov()
167 int blk_rq_unmap_user(struct bio *bio) in blk_rq_unmap_user() argument
169 struct bio *mapped_bio; in blk_rq_unmap_user()
172 while (bio) { in blk_rq_unmap_user()
173 mapped_bio = bio; in blk_rq_unmap_user()
174 if (unlikely(bio_flagged(bio, BIO_BOUNCED))) in blk_rq_unmap_user()
175 mapped_bio = bio->bi_private; in blk_rq_unmap_user()
181 mapped_bio = bio; in blk_rq_unmap_user()
182 bio = bio->bi_next; in blk_rq_unmap_user()
209 struct bio *bio; in blk_rq_map_kern() local
219 bio = bio_copy_kern(q, kbuf, len, gfp_mask, reading); in blk_rq_map_kern()
221 bio = bio_map_kern(q, kbuf, len, gfp_mask); in blk_rq_map_kern()
223 if (IS_ERR(bio)) in blk_rq_map_kern()
224 return PTR_ERR(bio); in blk_rq_map_kern()
227 bio->bi_rw |= REQ_WRITE; in blk_rq_map_kern()
232 ret = blk_rq_append_bio(q, rq, bio); in blk_rq_map_kern()
235 bio_put(bio); in blk_rq_map_kern()
239 blk_queue_bounce(q, &rq->bio); in blk_rq_map_kern()