• Home
  • Raw
  • Download

Lines Matching refs:bio

51 			struct bio *bio;  member
143 static void blk_crypto_fallback_encrypt_endio(struct bio *enc_bio) in blk_crypto_fallback_encrypt_endio()
145 struct bio *src_bio = enc_bio->bi_private; in blk_crypto_fallback_encrypt_endio()
158 static struct bio *blk_crypto_fallback_clone_bio(struct bio *bio_src) in blk_crypto_fallback_clone_bio()
162 struct bio *bio; in blk_crypto_fallback_clone_bio() local
164 bio = bio_kmalloc(GFP_NOIO, bio_segments(bio_src)); in blk_crypto_fallback_clone_bio()
165 if (!bio) in blk_crypto_fallback_clone_bio()
167 bio->bi_bdev = bio_src->bi_bdev; in blk_crypto_fallback_clone_bio()
169 bio_set_flag(bio, BIO_REMAPPED); in blk_crypto_fallback_clone_bio()
170 bio->bi_opf = bio_src->bi_opf; in blk_crypto_fallback_clone_bio()
171 bio->bi_ioprio = bio_src->bi_ioprio; in blk_crypto_fallback_clone_bio()
172 bio->bi_write_hint = bio_src->bi_write_hint; in blk_crypto_fallback_clone_bio()
173 bio->bi_iter.bi_sector = bio_src->bi_iter.bi_sector; in blk_crypto_fallback_clone_bio()
174 bio->bi_iter.bi_size = bio_src->bi_iter.bi_size; in blk_crypto_fallback_clone_bio()
177 bio->bi_io_vec[bio->bi_vcnt++] = bv; in blk_crypto_fallback_clone_bio()
179 bio_clone_blkg_association(bio, bio_src); in blk_crypto_fallback_clone_bio()
180 blkcg_bio_issue_init(bio); in blk_crypto_fallback_clone_bio()
182 bio_clone_skip_dm_default_key(bio, bio_src); in blk_crypto_fallback_clone_bio()
184 return bio; in blk_crypto_fallback_clone_bio()
211 static bool blk_crypto_fallback_split_bio_if_needed(struct bio **bio_ptr) in blk_crypto_fallback_split_bio_if_needed()
213 struct bio *bio = *bio_ptr; in blk_crypto_fallback_split_bio_if_needed() local
219 bio_for_each_segment(bv, bio, iter) { in blk_crypto_fallback_split_bio_if_needed()
224 if (num_sectors < bio_sectors(bio)) { in blk_crypto_fallback_split_bio_if_needed()
225 struct bio *split_bio; in blk_crypto_fallback_split_bio_if_needed()
227 split_bio = bio_split(bio, num_sectors, GFP_NOIO, in blk_crypto_fallback_split_bio_if_needed()
230 bio->bi_status = BLK_STS_RESOURCE; in blk_crypto_fallback_split_bio_if_needed()
233 bio_chain(split_bio, bio); in blk_crypto_fallback_split_bio_if_needed()
234 submit_bio_noacct(bio); in blk_crypto_fallback_split_bio_if_needed()
262 static bool blk_crypto_fallback_encrypt_bio(struct bio **bio_ptr) in blk_crypto_fallback_encrypt_bio()
264 struct bio *src_bio, *enc_bio; in blk_crypto_fallback_encrypt_bio()
381 struct bio *bio = f_ctx->bio; in blk_crypto_fallback_decrypt_bio() local
402 bio->bi_status = blk_st; in blk_crypto_fallback_decrypt_bio()
408 bio->bi_status = BLK_STS_RESOURCE; in blk_crypto_fallback_decrypt_bio()
418 __bio_for_each_segment(bv, bio, iter, f_ctx->crypt_iter) { in blk_crypto_fallback_decrypt_bio()
428 bio->bi_status = BLK_STS_IOERR; in blk_crypto_fallback_decrypt_bio()
441 bio_endio(bio); in blk_crypto_fallback_decrypt_bio()
452 static void blk_crypto_fallback_decrypt_endio(struct bio *bio) in blk_crypto_fallback_decrypt_endio() argument
454 struct bio_fallback_crypt_ctx *f_ctx = bio->bi_private; in blk_crypto_fallback_decrypt_endio()
456 bio->bi_private = f_ctx->bi_private_orig; in blk_crypto_fallback_decrypt_endio()
457 bio->bi_end_io = f_ctx->bi_end_io_orig; in blk_crypto_fallback_decrypt_endio()
460 if (bio->bi_status) { in blk_crypto_fallback_decrypt_endio()
462 bio_endio(bio); in blk_crypto_fallback_decrypt_endio()
467 f_ctx->bio = bio; in blk_crypto_fallback_decrypt_endio()
491 bool blk_crypto_fallback_bio_prep(struct bio **bio_ptr) in blk_crypto_fallback_bio_prep()
493 struct bio *bio = *bio_ptr; in blk_crypto_fallback_bio_prep() local
494 struct bio_crypt_ctx *bc = bio->bi_crypt_context; in blk_crypto_fallback_bio_prep()
499 bio->bi_status = BLK_STS_IOERR; in blk_crypto_fallback_bio_prep()
505 bio->bi_status = BLK_STS_NOTSUPP; in blk_crypto_fallback_bio_prep()
509 if (bio_data_dir(bio) == WRITE) in blk_crypto_fallback_bio_prep()
518 f_ctx->crypt_iter = bio->bi_iter; in blk_crypto_fallback_bio_prep()
519 f_ctx->bi_private_orig = bio->bi_private; in blk_crypto_fallback_bio_prep()
520 f_ctx->bi_end_io_orig = bio->bi_end_io; in blk_crypto_fallback_bio_prep()
521 bio->bi_private = (void *)f_ctx; in blk_crypto_fallback_bio_prep()
522 bio->bi_end_io = blk_crypto_fallback_decrypt_endio; in blk_crypto_fallback_bio_prep()
523 bio_crypt_free_ctx(bio); in blk_crypto_fallback_bio_prep()