Lines Matching refs:bip

55 	struct bio_integrity_payload *bip;  in bio_integrity_alloc()  local
60 bip = kmalloc(sizeof(struct bio_integrity_payload) + in bio_integrity_alloc()
64 bip = mempool_alloc(&bs->bio_integrity_pool, gfp_mask); in bio_integrity_alloc()
68 if (unlikely(!bip)) in bio_integrity_alloc()
71 memset(bip, 0, sizeof(*bip)); in bio_integrity_alloc()
76 bip->bip_vec = bvec_alloc(gfp_mask, nr_vecs, &idx, in bio_integrity_alloc()
78 if (!bip->bip_vec) in bio_integrity_alloc()
80 bip->bip_max_vcnt = bvec_nr_vecs(idx); in bio_integrity_alloc()
81 bip->bip_slab = idx; in bio_integrity_alloc()
83 bip->bip_vec = bip->bip_inline_vecs; in bio_integrity_alloc()
84 bip->bip_max_vcnt = inline_vecs; in bio_integrity_alloc()
87 bip->bip_bio = bio; in bio_integrity_alloc()
88 bio->bi_integrity = bip; in bio_integrity_alloc()
91 return bip; in bio_integrity_alloc()
93 mempool_free(bip, &bs->bio_integrity_pool); in bio_integrity_alloc()
107 struct bio_integrity_payload *bip = bio_integrity(bio); in bio_integrity_free() local
110 if (bip->bip_flags & BIP_BLOCK_INTEGRITY) in bio_integrity_free()
111 kfree(page_address(bip->bip_vec->bv_page) + in bio_integrity_free()
112 bip->bip_vec->bv_offset); in bio_integrity_free()
115 bvec_free(&bs->bvec_integrity_pool, bip->bip_vec, bip->bip_slab); in bio_integrity_free()
117 mempool_free(bip, &bs->bio_integrity_pool); in bio_integrity_free()
119 kfree(bip); in bio_integrity_free()
138 struct bio_integrity_payload *bip = bio_integrity(bio); in bio_integrity_add_page() local
141 if (bip->bip_vcnt >= bip->bip_max_vcnt) { in bio_integrity_add_page()
146 iv = bip->bip_vec + bip->bip_vcnt; in bio_integrity_add_page()
148 if (bip->bip_vcnt && in bio_integrity_add_page()
150 &bip->bip_vec[bip->bip_vcnt - 1], offset)) in bio_integrity_add_page()
156 bip->bip_vcnt++; in bio_integrity_add_page()
175 struct bio_integrity_payload *bip = bio_integrity(bio); in bio_integrity_process() local
177 void *prot_buf = page_address(bip->bip_vec->bv_page) + in bio_integrity_process()
178 bip->bip_vec->bv_offset; in bio_integrity_process()
216 struct bio_integrity_payload *bip; in bio_integrity_prep() local
264 bip = bio_integrity_alloc(bio, GFP_NOIO, nr_pages); in bio_integrity_prep()
265 if (IS_ERR(bip)) { in bio_integrity_prep()
272 bip->bip_flags |= BIP_BLOCK_INTEGRITY; in bio_integrity_prep()
273 bip->bip_iter.bi_size = len; in bio_integrity_prep()
274 bip_set_seed(bip, bio->bi_iter.bi_sector); in bio_integrity_prep()
277 bip->bip_flags |= BIP_IP_CHECKSUM; in bio_integrity_prep()
330 struct bio_integrity_payload *bip = in bio_integrity_verify_fn() local
332 struct bio *bio = bip->bip_bio; in bio_integrity_verify_fn()
366 struct bio_integrity_payload *bip = bio_integrity(bio); in __bio_integrity_endio() local
369 (bip->bip_flags & BIP_BLOCK_INTEGRITY) && bi->profile->verify_fn) { in __bio_integrity_endio()
370 INIT_WORK(&bip->bip_work, bio_integrity_verify_fn); in __bio_integrity_endio()
371 queue_work(kintegrityd_wq, &bip->bip_work); in __bio_integrity_endio()
390 struct bio_integrity_payload *bip = bio_integrity(bio); in bio_integrity_advance() local
394 bip->bip_iter.bi_sector += bytes_done >> 9; in bio_integrity_advance()
395 bvec_iter_advance(bip->bip_vec, &bip->bip_iter, bytes); in bio_integrity_advance()
407 struct bio_integrity_payload *bip = bio_integrity(bio); in bio_integrity_trim() local
410 bip->bip_iter.bi_size = bio_integrity_bytes(bi, bio_sectors(bio)); in bio_integrity_trim()
426 struct bio_integrity_payload *bip; in bio_integrity_clone() local
430 bip = bio_integrity_alloc(bio, gfp_mask, bip_src->bip_vcnt); in bio_integrity_clone()
431 if (IS_ERR(bip)) in bio_integrity_clone()
432 return PTR_ERR(bip); in bio_integrity_clone()
434 memcpy(bip->bip_vec, bip_src->bip_vec, in bio_integrity_clone()
437 bip->bip_vcnt = bip_src->bip_vcnt; in bio_integrity_clone()
438 bip->bip_iter = bip_src->bip_iter; in bio_integrity_clone()