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()
127 struct bio_integrity_payload *bip = bio_integrity(bio); in bio_integrity_add_page() local
129 if (((bip->bip_iter.bi_size + len) >> SECTOR_SHIFT) > in bio_integrity_add_page()
133 if (bip->bip_vcnt > 0) { in bio_integrity_add_page()
134 struct bio_vec *bv = &bip->bip_vec[bip->bip_vcnt - 1]; in bio_integrity_add_page()
139 bip->bip_iter.bi_size += len; in bio_integrity_add_page()
143 if (bip->bip_vcnt >= in bio_integrity_add_page()
144 min(bip->bip_max_vcnt, queue_max_integrity_segments(q))) in bio_integrity_add_page()
155 bvec_set_page(&bip->bip_vec[bip->bip_vcnt], page, len, offset); in bio_integrity_add_page()
156 bip->bip_vcnt++; in bio_integrity_add_page()
157 bip->bip_iter.bi_size += len; in bio_integrity_add_page()
176 struct bio_integrity_payload *bip = bio_integrity(bio); in bio_integrity_process() local
183 iter.prot_buf = bvec_virt(bip->bip_vec); in bio_integrity_process()
214 struct bio_integrity_payload *bip; in bio_integrity_prep() local
257 bip = bio_integrity_alloc(bio, GFP_NOIO, nr_pages); in bio_integrity_prep()
258 if (IS_ERR(bip)) { in bio_integrity_prep()
264 bip->bip_flags |= BIP_BLOCK_INTEGRITY; in bio_integrity_prep()
265 bip_set_seed(bip, bio->bi_iter.bi_sector); in bio_integrity_prep()
268 bip->bip_flags |= BIP_IP_CHECKSUM; in bio_integrity_prep()
294 bip->bio_iter = bio->bi_iter; in bio_integrity_prep()
315 struct bio_integrity_payload *bip = in bio_integrity_verify_fn() local
317 struct bio *bio = bip->bip_bio; in bio_integrity_verify_fn()
325 bio->bi_status = bio_integrity_process(bio, &bip->bio_iter, in bio_integrity_verify_fn()
345 struct bio_integrity_payload *bip = bio_integrity(bio); in __bio_integrity_endio() local
348 (bip->bip_flags & BIP_BLOCK_INTEGRITY) && bi->profile->verify_fn) { in __bio_integrity_endio()
349 INIT_WORK(&bip->bip_work, bio_integrity_verify_fn); in __bio_integrity_endio()
350 queue_work(kintegrityd_wq, &bip->bip_work); in __bio_integrity_endio()
369 struct bio_integrity_payload *bip = bio_integrity(bio); in bio_integrity_advance() local
373 bip->bip_iter.bi_sector += bio_integrity_intervals(bi, bytes_done >> 9); in bio_integrity_advance()
374 bvec_iter_advance(bip->bip_vec, &bip->bip_iter, bytes); in bio_integrity_advance()
385 struct bio_integrity_payload *bip = bio_integrity(bio); in bio_integrity_trim() local
388 bip->bip_iter.bi_size = bio_integrity_bytes(bi, bio_sectors(bio)); in bio_integrity_trim()
404 struct bio_integrity_payload *bip; in bio_integrity_clone() local
408 bip = bio_integrity_alloc(bio, gfp_mask, bip_src->bip_vcnt); in bio_integrity_clone()
409 if (IS_ERR(bip)) in bio_integrity_clone()
410 return PTR_ERR(bip); in bio_integrity_clone()
412 memcpy(bip->bip_vec, bip_src->bip_vec, in bio_integrity_clone()
415 bip->bip_vcnt = bip_src->bip_vcnt; in bio_integrity_clone()
416 bip->bip_iter = bip_src->bip_iter; in bio_integrity_clone()
417 bip->bip_flags = bip_src->bip_flags & ~BIP_BLOCK_INTEGRITY; in bio_integrity_clone()