Lines Matching refs:bip

54 	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()
74 bip->bip_vec = bvec_alloc(gfp_mask, nr_vecs, &idx, in bio_integrity_alloc()
76 if (!bip->bip_vec) in bio_integrity_alloc()
78 bip->bip_max_vcnt = bvec_nr_vecs(idx); in bio_integrity_alloc()
80 bip->bip_vec = bip->bip_inline_vecs; in bio_integrity_alloc()
81 bip->bip_max_vcnt = inline_vecs; in bio_integrity_alloc()
84 bip->bip_slab = idx; in bio_integrity_alloc()
85 bip->bip_bio = bio; in bio_integrity_alloc()
86 bio->bi_integrity = bip; in bio_integrity_alloc()
89 return bip; in bio_integrity_alloc()
91 mempool_free(bip, bs->bio_integrity_pool); in bio_integrity_alloc()
105 struct bio_integrity_payload *bip = bio_integrity(bio); in bio_integrity_free() local
108 if (bip->bip_flags & BIP_BLOCK_INTEGRITY) in bio_integrity_free()
109 kfree(page_address(bip->bip_vec->bv_page) + in bio_integrity_free()
110 bip->bip_vec->bv_offset); in bio_integrity_free()
113 if (bip->bip_slab != BIO_POOL_NONE) in bio_integrity_free()
114 bvec_free(bs->bvec_integrity_pool, bip->bip_vec, in bio_integrity_free()
115 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()
231 struct bio_integrity_payload *bip = bio_integrity(bio); in bio_integrity_process() local
233 void *prot_buf = page_address(bip->bip_vec->bv_page) + in bio_integrity_process()
234 bip->bip_vec->bv_offset; in bio_integrity_process()
238 iter.seed = bip_get_seed(bip); in bio_integrity_process()
271 struct bio_integrity_payload *bip; in bio_integrity_prep() local
300 bip = bio_integrity_alloc(bio, GFP_NOIO, nr_pages); in bio_integrity_prep()
301 if (unlikely(bip == NULL)) { in bio_integrity_prep()
307 bip->bip_flags |= BIP_BLOCK_INTEGRITY; in bio_integrity_prep()
308 bip->bip_iter.bi_size = len; in bio_integrity_prep()
309 bip_set_seed(bip, bio->bi_iter.bi_sector); in bio_integrity_prep()
312 bip->bip_flags |= BIP_IP_CHECKSUM; in bio_integrity_prep()
342 bip->bip_end_io = bio->bi_end_io; in bio_integrity_prep()
364 struct bio_integrity_payload *bip = in bio_integrity_verify_fn() local
366 struct bio *bio = bip->bip_bio; in bio_integrity_verify_fn()
372 bio->bi_end_io = bip->bip_end_io; in bio_integrity_verify_fn()
390 struct bio_integrity_payload *bip = bio_integrity(bio); in bio_integrity_endio() local
392 BUG_ON(bip->bip_bio != bio); in bio_integrity_endio()
399 bio->bi_end_io = bip->bip_end_io; in bio_integrity_endio()
405 INIT_WORK(&bip->bip_work, bio_integrity_verify_fn); in bio_integrity_endio()
406 queue_work(kintegrityd_wq, &bip->bip_work); in bio_integrity_endio()
421 struct bio_integrity_payload *bip = bio_integrity(bio); in bio_integrity_advance() local
425 bvec_iter_advance(bip->bip_vec, &bip->bip_iter, bytes); in bio_integrity_advance()
443 struct bio_integrity_payload *bip = bio_integrity(bio); in bio_integrity_trim() local
447 bip->bip_iter.bi_size = bio_integrity_bytes(bi, sectors); in bio_integrity_trim()
463 struct bio_integrity_payload *bip; in bio_integrity_clone() local
467 bip = bio_integrity_alloc(bio, gfp_mask, bip_src->bip_vcnt); in bio_integrity_clone()
469 if (bip == NULL) in bio_integrity_clone()
472 memcpy(bip->bip_vec, bip_src->bip_vec, in bio_integrity_clone()
475 bip->bip_vcnt = bip_src->bip_vcnt; in bio_integrity_clone()
476 bip->bip_iter = bip_src->bip_iter; in bio_integrity_clone()