Lines Matching refs:bip

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