Lines Matching refs:bip
28 struct bio_integrity_payload *bip) in __bio_integrity_free() argument
31 if (bip->bip_vec) in __bio_integrity_free()
32 bvec_free(&bs->bvec_integrity_pool, bip->bip_vec, in __bio_integrity_free()
33 bip->bip_slab); in __bio_integrity_free()
34 mempool_free(bip, &bs->bio_integrity_pool); in __bio_integrity_free()
36 kfree(bip); in __bio_integrity_free()
54 struct bio_integrity_payload *bip; in bio_integrity_alloc() local
62 bip = kmalloc(struct_size(bip, bip_inline_vecs, nr_vecs), gfp_mask); in bio_integrity_alloc()
65 bip = mempool_alloc(&bs->bio_integrity_pool, gfp_mask); in bio_integrity_alloc()
69 if (unlikely(!bip)) in bio_integrity_alloc()
72 memset(bip, 0, sizeof(*bip)); in bio_integrity_alloc()
77 bip->bip_vec = bvec_alloc(gfp_mask, nr_vecs, &idx, in bio_integrity_alloc()
79 if (!bip->bip_vec) in bio_integrity_alloc()
81 bip->bip_max_vcnt = bvec_nr_vecs(idx); in bio_integrity_alloc()
82 bip->bip_slab = idx; in bio_integrity_alloc()
84 bip->bip_vec = bip->bip_inline_vecs; in bio_integrity_alloc()
85 bip->bip_max_vcnt = inline_vecs; in bio_integrity_alloc()
88 bip->bip_bio = bio; in bio_integrity_alloc()
89 bio->bi_integrity = bip; in bio_integrity_alloc()
92 return bip; in bio_integrity_alloc()
94 __bio_integrity_free(bs, bip); in bio_integrity_alloc()
108 struct bio_integrity_payload *bip = bio_integrity(bio); in bio_integrity_free() local
111 if (bip->bip_flags & BIP_BLOCK_INTEGRITY) in bio_integrity_free()
112 kfree(page_address(bip->bip_vec->bv_page) + in bio_integrity_free()
113 bip->bip_vec->bv_offset); in bio_integrity_free()
115 __bio_integrity_free(bs, bip); in bio_integrity_free()
132 struct bio_integrity_payload *bip = bio_integrity(bio); in bio_integrity_add_page() local
135 if (bip->bip_vcnt >= bip->bip_max_vcnt) { in bio_integrity_add_page()
140 iv = bip->bip_vec + bip->bip_vcnt; in bio_integrity_add_page()
142 if (bip->bip_vcnt && in bio_integrity_add_page()
144 &bip->bip_vec[bip->bip_vcnt - 1], offset)) in bio_integrity_add_page()
150 bip->bip_vcnt++; in bio_integrity_add_page()
169 struct bio_integrity_payload *bip = bio_integrity(bio); in bio_integrity_process() local
171 void *prot_buf = page_address(bip->bip_vec->bv_page) + in bio_integrity_process()
172 bip->bip_vec->bv_offset; in bio_integrity_process()
210 struct bio_integrity_payload *bip; in bio_integrity_prep() local
258 bip = bio_integrity_alloc(bio, GFP_NOIO, nr_pages); in bio_integrity_prep()
259 if (IS_ERR(bip)) { in bio_integrity_prep()
266 bip->bip_flags |= BIP_BLOCK_INTEGRITY; in bio_integrity_prep()
267 bip->bip_iter.bi_size = len; in bio_integrity_prep()
268 bip_set_seed(bip, bio->bi_iter.bi_sector); in bio_integrity_prep()
271 bip->bip_flags |= BIP_IP_CHECKSUM; in bio_integrity_prep()
307 bip->bio_iter = bio->bi_iter; in bio_integrity_prep()
329 struct bio_integrity_payload *bip = in bio_integrity_verify_fn() local
331 struct bio *bio = bip->bip_bio; in bio_integrity_verify_fn()
339 bio->bi_status = bio_integrity_process(bio, &bip->bio_iter, in bio_integrity_verify_fn()
359 struct bio_integrity_payload *bip = bio_integrity(bio); in __bio_integrity_endio() local
362 (bip->bip_flags & BIP_BLOCK_INTEGRITY) && bi->profile->verify_fn) { in __bio_integrity_endio()
363 INIT_WORK(&bip->bip_work, bio_integrity_verify_fn); in __bio_integrity_endio()
364 queue_work(kintegrityd_wq, &bip->bip_work); in __bio_integrity_endio()
383 struct bio_integrity_payload *bip = bio_integrity(bio); in bio_integrity_advance() local
387 bip->bip_iter.bi_sector += bytes_done >> 9; in bio_integrity_advance()
388 bvec_iter_advance(bip->bip_vec, &bip->bip_iter, bytes); in bio_integrity_advance()
399 struct bio_integrity_payload *bip = bio_integrity(bio); in bio_integrity_trim() local
402 bip->bip_iter.bi_size = bio_integrity_bytes(bi, bio_sectors(bio)); in bio_integrity_trim()
418 struct bio_integrity_payload *bip; in bio_integrity_clone() local
422 bip = bio_integrity_alloc(bio, gfp_mask, bip_src->bip_vcnt); in bio_integrity_clone()
423 if (IS_ERR(bip)) in bio_integrity_clone()
424 return PTR_ERR(bip); in bio_integrity_clone()
426 memcpy(bip->bip_vec, bip_src->bip_vec, in bio_integrity_clone()
429 bip->bip_vcnt = bip_src->bip_vcnt; in bio_integrity_clone()
430 bip->bip_iter = bip_src->bip_iter; in bio_integrity_clone()