Lines Matching refs:bio

52 			struct bio *bio;  member
144 static void blk_crypto_fallback_encrypt_endio(struct bio *enc_bio) in blk_crypto_fallback_encrypt_endio()
146 struct bio *src_bio = enc_bio->bi_private; in blk_crypto_fallback_encrypt_endio()
160 static struct bio *blk_crypto_fallback_clone_bio(struct bio *bio_src) in blk_crypto_fallback_clone_bio()
165 struct bio *bio; in blk_crypto_fallback_clone_bio() local
167 bio = bio_kmalloc(nr_segs, GFP_NOIO); in blk_crypto_fallback_clone_bio()
168 if (!bio) in blk_crypto_fallback_clone_bio()
170 bio_init(bio, bio_src->bi_bdev, bio->bi_inline_vecs, nr_segs, in blk_crypto_fallback_clone_bio()
173 bio_set_flag(bio, BIO_REMAPPED); in blk_crypto_fallback_clone_bio()
174 bio->bi_ioprio = bio_src->bi_ioprio; in blk_crypto_fallback_clone_bio()
175 bio->bi_iter.bi_sector = bio_src->bi_iter.bi_sector; in blk_crypto_fallback_clone_bio()
176 bio->bi_iter.bi_size = bio_src->bi_iter.bi_size; in blk_crypto_fallback_clone_bio()
179 bio->bi_io_vec[bio->bi_vcnt++] = bv; in blk_crypto_fallback_clone_bio()
181 bio_clone_blkg_association(bio, bio_src); in blk_crypto_fallback_clone_bio()
183 return bio; in blk_crypto_fallback_clone_bio()
210 static bool blk_crypto_fallback_split_bio_if_needed(struct bio **bio_ptr) in blk_crypto_fallback_split_bio_if_needed()
212 struct bio *bio = *bio_ptr; in blk_crypto_fallback_split_bio_if_needed() local
218 bio_for_each_segment(bv, bio, iter) { in blk_crypto_fallback_split_bio_if_needed()
223 if (num_sectors < bio_sectors(bio)) { in blk_crypto_fallback_split_bio_if_needed()
224 struct bio *split_bio; in blk_crypto_fallback_split_bio_if_needed()
226 split_bio = bio_split(bio, num_sectors, GFP_NOIO, in blk_crypto_fallback_split_bio_if_needed()
229 bio->bi_status = BLK_STS_RESOURCE; in blk_crypto_fallback_split_bio_if_needed()
232 bio_chain(split_bio, bio); in blk_crypto_fallback_split_bio_if_needed()
233 submit_bio_noacct(bio); in blk_crypto_fallback_split_bio_if_needed()
261 static bool blk_crypto_fallback_encrypt_bio(struct bio **bio_ptr) in blk_crypto_fallback_encrypt_bio()
263 struct bio *src_bio, *enc_bio; in blk_crypto_fallback_encrypt_bio()
380 struct bio *bio = f_ctx->bio; in blk_crypto_fallback_decrypt_bio() local
401 bio->bi_status = blk_st; in blk_crypto_fallback_decrypt_bio()
407 bio->bi_status = BLK_STS_RESOURCE; in blk_crypto_fallback_decrypt_bio()
417 __bio_for_each_segment(bv, bio, iter, f_ctx->crypt_iter) { in blk_crypto_fallback_decrypt_bio()
427 bio->bi_status = BLK_STS_IOERR; in blk_crypto_fallback_decrypt_bio()
440 bio_endio(bio); in blk_crypto_fallback_decrypt_bio()
451 static void blk_crypto_fallback_decrypt_endio(struct bio *bio) in blk_crypto_fallback_decrypt_endio() argument
453 struct bio_fallback_crypt_ctx *f_ctx = bio->bi_private; in blk_crypto_fallback_decrypt_endio()
455 bio->bi_private = f_ctx->bi_private_orig; in blk_crypto_fallback_decrypt_endio()
456 bio->bi_end_io = f_ctx->bi_end_io_orig; in blk_crypto_fallback_decrypt_endio()
459 if (bio->bi_status) { in blk_crypto_fallback_decrypt_endio()
461 bio_endio(bio); in blk_crypto_fallback_decrypt_endio()
466 f_ctx->bio = bio; in blk_crypto_fallback_decrypt_endio()
490 bool blk_crypto_fallback_bio_prep(struct bio **bio_ptr) in blk_crypto_fallback_bio_prep()
492 struct bio *bio = *bio_ptr; in blk_crypto_fallback_bio_prep() local
493 struct bio_crypt_ctx *bc = bio->bi_crypt_context; in blk_crypto_fallback_bio_prep()
498 bio->bi_status = BLK_STS_IOERR; in blk_crypto_fallback_bio_prep()
504 bio->bi_status = BLK_STS_NOTSUPP; in blk_crypto_fallback_bio_prep()
508 if (bio_data_dir(bio) == WRITE) in blk_crypto_fallback_bio_prep()
517 f_ctx->crypt_iter = bio->bi_iter; in blk_crypto_fallback_bio_prep()
518 f_ctx->bi_private_orig = bio->bi_private; in blk_crypto_fallback_bio_prep()
519 f_ctx->bi_end_io_orig = bio->bi_end_io; in blk_crypto_fallback_bio_prep()
520 bio->bi_private = (void *)f_ctx; in blk_crypto_fallback_bio_prep()
521 bio->bi_end_io = blk_crypto_fallback_decrypt_endio; in blk_crypto_fallback_bio_prep()
522 bio_crypt_free_ctx(bio); in blk_crypto_fallback_bio_prep()