Lines Matching refs:bip
49 struct bio_integrity_payload *bip; in bio_integrity_alloc() local
55 bip = kmalloc(sizeof(struct bio_integrity_payload) + in bio_integrity_alloc()
59 bip = mempool_alloc(bs->bio_integrity_pool, gfp_mask); in bio_integrity_alloc()
63 if (unlikely(!bip)) in bio_integrity_alloc()
66 memset(bip, 0, sizeof(*bip)); in bio_integrity_alloc()
69 bip->bip_vec = bvec_alloc(gfp_mask, nr_vecs, &idx, in bio_integrity_alloc()
71 if (!bip->bip_vec) in bio_integrity_alloc()
73 bip->bip_max_vcnt = bvec_nr_vecs(idx); in bio_integrity_alloc()
75 bip->bip_vec = bip->bip_inline_vecs; in bio_integrity_alloc()
76 bip->bip_max_vcnt = inline_vecs; in bio_integrity_alloc()
79 bip->bip_slab = idx; in bio_integrity_alloc()
80 bip->bip_bio = bio; in bio_integrity_alloc()
81 bio->bi_integrity = bip; in bio_integrity_alloc()
84 return bip; in bio_integrity_alloc()
86 mempool_free(bip, bs->bio_integrity_pool); in bio_integrity_alloc()
100 struct bio_integrity_payload *bip = bio_integrity(bio); in bio_integrity_free() local
103 if (bip->bip_flags & BIP_BLOCK_INTEGRITY) in bio_integrity_free()
104 kfree(page_address(bip->bip_vec->bv_page) + in bio_integrity_free()
105 bip->bip_vec->bv_offset); in bio_integrity_free()
108 if (bip->bip_slab != BIO_POOL_NONE) in bio_integrity_free()
109 bvec_free(bs->bvec_integrity_pool, bip->bip_vec, in bio_integrity_free()
110 bip->bip_slab); in bio_integrity_free()
112 mempool_free(bip, bs->bio_integrity_pool); in bio_integrity_free()
114 kfree(bip); in bio_integrity_free()
133 struct bio_integrity_payload *bip = bio_integrity(bio); in bio_integrity_add_page() local
136 if (bip->bip_vcnt >= bip->bip_max_vcnt) { in bio_integrity_add_page()
141 iv = bip->bip_vec + bip->bip_vcnt; in bio_integrity_add_page()
146 bip->bip_vcnt++; in bio_integrity_add_page()
221 struct bio_integrity_payload *bip = bio_integrity(bio); in bio_integrity_process() local
223 void *prot_buf = page_address(bip->bip_vec->bv_page) + in bio_integrity_process()
224 bip->bip_vec->bv_offset; in bio_integrity_process()
228 iter.seed = bip_get_seed(bip); in bio_integrity_process()
261 struct bio_integrity_payload *bip; in bio_integrity_prep() local
290 bip = bio_integrity_alloc(bio, GFP_NOIO, nr_pages); in bio_integrity_prep()
291 if (unlikely(bip == NULL)) { in bio_integrity_prep()
297 bip->bip_flags |= BIP_BLOCK_INTEGRITY; in bio_integrity_prep()
298 bip->bip_iter.bi_size = len; in bio_integrity_prep()
299 bip_set_seed(bip, bio->bi_iter.bi_sector); in bio_integrity_prep()
302 bip->bip_flags |= BIP_IP_CHECKSUM; in bio_integrity_prep()
332 bip->bip_end_io = bio->bi_end_io; in bio_integrity_prep()
354 struct bio_integrity_payload *bip = in bio_integrity_verify_fn() local
356 struct bio *bio = bip->bip_bio; in bio_integrity_verify_fn()
363 bio->bi_end_io = bip->bip_end_io; in bio_integrity_verify_fn()
381 struct bio_integrity_payload *bip = bio_integrity(bio); in bio_integrity_endio() local
383 BUG_ON(bip->bip_bio != bio); in bio_integrity_endio()
390 bio->bi_end_io = bip->bip_end_io; in bio_integrity_endio()
396 INIT_WORK(&bip->bip_work, bio_integrity_verify_fn); in bio_integrity_endio()
397 queue_work(kintegrityd_wq, &bip->bip_work); in bio_integrity_endio()
412 struct bio_integrity_payload *bip = bio_integrity(bio); in bio_integrity_advance() local
416 bvec_iter_advance(bip->bip_vec, &bip->bip_iter, bytes); in bio_integrity_advance()
434 struct bio_integrity_payload *bip = bio_integrity(bio); in bio_integrity_trim() local
438 bip->bip_iter.bi_size = bio_integrity_bytes(bi, sectors); in bio_integrity_trim()
454 struct bio_integrity_payload *bip; in bio_integrity_clone() local
458 bip = bio_integrity_alloc(bio, gfp_mask, bip_src->bip_vcnt); in bio_integrity_clone()
460 if (bip == NULL) in bio_integrity_clone()
463 memcpy(bip->bip_vec, bip_src->bip_vec, in bio_integrity_clone()
466 bip->bip_vcnt = bip_src->bip_vcnt; in bio_integrity_clone()
467 bip->bip_iter = bip_src->bip_iter; in bio_integrity_clone()