Lines Matching refs:bip

26 				 struct bio_integrity_payload *bip)  in __bio_integrity_free()  argument
29 if (bip->bip_vec) in __bio_integrity_free()
30 bvec_free(&bs->bvec_integrity_pool, bip->bip_vec, in __bio_integrity_free()
31 bip->bip_max_vcnt); in __bio_integrity_free()
32 mempool_free(bip, &bs->bio_integrity_pool); in __bio_integrity_free()
34 kfree(bip); in __bio_integrity_free()
52 struct bio_integrity_payload *bip; in bio_integrity_alloc() local
60 bip = kmalloc(struct_size(bip, bip_inline_vecs, nr_vecs), gfp_mask); in bio_integrity_alloc()
63 bip = mempool_alloc(&bs->bio_integrity_pool, gfp_mask); in bio_integrity_alloc()
67 if (unlikely(!bip)) in bio_integrity_alloc()
70 memset(bip, 0, sizeof(*bip)); in bio_integrity_alloc()
73 bip->bip_max_vcnt = nr_vecs; in bio_integrity_alloc()
74 bip->bip_vec = bvec_alloc(&bs->bvec_integrity_pool, in bio_integrity_alloc()
75 &bip->bip_max_vcnt, gfp_mask); in bio_integrity_alloc()
76 if (!bip->bip_vec) in bio_integrity_alloc()
79 bip->bip_vec = bip->bip_inline_vecs; in bio_integrity_alloc()
80 bip->bip_max_vcnt = inline_vecs; in bio_integrity_alloc()
83 bip->bip_bio = bio; in bio_integrity_alloc()
84 bio->bi_integrity = bip; in bio_integrity_alloc()
87 return bip; in bio_integrity_alloc()
89 __bio_integrity_free(bs, bip); in bio_integrity_alloc()
103 struct bio_integrity_payload *bip = bio_integrity(bio); in bio_integrity_free() local
106 if (bip->bip_flags & BIP_BLOCK_INTEGRITY) in bio_integrity_free()
107 kfree(bvec_virt(bip->bip_vec)); in bio_integrity_free()
109 __bio_integrity_free(bs, bip); in bio_integrity_free()
126 struct bio_integrity_payload *bip = bio_integrity(bio); in bio_integrity_add_page() local
128 if (bip->bip_vcnt >= bip->bip_max_vcnt) { in bio_integrity_add_page()
133 if (bip->bip_vcnt && in bio_integrity_add_page()
135 &bip->bip_vec[bip->bip_vcnt - 1], offset)) in bio_integrity_add_page()
138 bvec_set_page(&bip->bip_vec[bip->bip_vcnt], page, len, offset); in bio_integrity_add_page()
139 bip->bip_vcnt++; in bio_integrity_add_page()
158 struct bio_integrity_payload *bip = bio_integrity(bio); in bio_integrity_process() local
165 iter.prot_buf = bvec_virt(bip->bip_vec); in bio_integrity_process()
196 struct bio_integrity_payload *bip; in bio_integrity_prep() local
243 bip = bio_integrity_alloc(bio, GFP_NOIO, nr_pages); in bio_integrity_prep()
244 if (IS_ERR(bip)) { in bio_integrity_prep()
251 bip->bip_flags |= BIP_BLOCK_INTEGRITY; in bio_integrity_prep()
252 bip->bip_iter.bi_size = len; in bio_integrity_prep()
253 bip_set_seed(bip, bio->bi_iter.bi_sector); in bio_integrity_prep()
256 bip->bip_flags |= BIP_IP_CHECKSUM; in bio_integrity_prep()
292 bip->bio_iter = bio->bi_iter; in bio_integrity_prep()
314 struct bio_integrity_payload *bip = in bio_integrity_verify_fn() local
316 struct bio *bio = bip->bip_bio; in bio_integrity_verify_fn()
324 bio->bi_status = bio_integrity_process(bio, &bip->bio_iter, in bio_integrity_verify_fn()
344 struct bio_integrity_payload *bip = bio_integrity(bio); in __bio_integrity_endio() local
347 (bip->bip_flags & BIP_BLOCK_INTEGRITY) && bi->profile->verify_fn) { in __bio_integrity_endio()
348 INIT_WORK(&bip->bip_work, bio_integrity_verify_fn); in __bio_integrity_endio()
349 queue_work(kintegrityd_wq, &bip->bip_work); in __bio_integrity_endio()
368 struct bio_integrity_payload *bip = bio_integrity(bio); in bio_integrity_advance() local
372 bip->bip_iter.bi_sector += bio_integrity_intervals(bi, bytes_done >> 9); in bio_integrity_advance()
373 bvec_iter_advance(bip->bip_vec, &bip->bip_iter, bytes); in bio_integrity_advance()
384 struct bio_integrity_payload *bip = bio_integrity(bio); in bio_integrity_trim() local
387 bip->bip_iter.bi_size = bio_integrity_bytes(bi, bio_sectors(bio)); in bio_integrity_trim()
403 struct bio_integrity_payload *bip; in bio_integrity_clone() local
407 bip = bio_integrity_alloc(bio, gfp_mask, bip_src->bip_vcnt); in bio_integrity_clone()
408 if (IS_ERR(bip)) in bio_integrity_clone()
409 return PTR_ERR(bip); in bio_integrity_clone()
411 memcpy(bip->bip_vec, bip_src->bip_vec, in bio_integrity_clone()
414 bip->bip_vcnt = bip_src->bip_vcnt; in bio_integrity_clone()
415 bip->bip_iter = bip_src->bip_iter; in bio_integrity_clone()
416 bip->bip_flags = bip_src->bip_flags & ~BIP_BLOCK_INTEGRITY; in bio_integrity_clone()