• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/fs/

Lines Matching refs:bip

35 #define IS(x) { .nr_vecs = x, .name = "bip-"__stringify(x) }
87 struct bio_integrity_payload *bip;
91 bip = NULL;
95 bip = kmem_cache_alloc(bip_slab[idx].slab, gfp_mask);
98 if (bip == NULL) {
100 bip = mempool_alloc(bs->bio_integrity_pool, gfp_mask);
102 if (unlikely(bip == NULL)) {
103 printk(KERN_ERR "%s: could not alloc bip\n", __func__);
108 memset(bip, 0, sizeof(*bip));
110 bip->bip_slab = idx;
111 bip->bip_bio = bio;
112 bio->bi_integrity = bip;
114 return bip;
138 * @bio: bio containing bip to be freed
146 struct bio_integrity_payload *bip = bio->bi_integrity;
148 BUG_ON(bip == NULL);
152 && bip->bip_buf != NULL)
153 kfree(bip->bip_buf);
155 if (use_bip_pool(bip->bip_slab))
156 mempool_free(bip, bs->bio_integrity_pool);
158 kmem_cache_free(bip_slab[bip->bip_slab].slab, bip);
176 struct bio_integrity_payload *bip = bio->bi_integrity;
179 if (bip->bip_vcnt >= bvec_nr_vecs(bip->bip_slab)) {
184 iv = bip_vec_idx(bip, bip->bip_vcnt);
190 bip->bip_vcnt++;
273 struct bio_integrity_payload *bip = bio->bi_integrity;
277 BUG_ON(bip->bip_buf == NULL);
285 if (nr_sectors * bi->tuple_size > bip->bip_size) {
287 __func__, nr_sectors * bi->tuple_size, bip->bip_size);
292 bi->set_tag_fn(bip->bip_buf, tag_buf, nr_sectors);
294 bi->get_tag_fn(bip->bip_buf, tag_buf, nr_sectors);
342 * bip attached with enough room to accommodate the generated
398 struct bio_integrity_payload *bip;
427 bip = bio_integrity_alloc(bio, GFP_NOIO, nr_pages);
428 if (unlikely(bip == NULL)) {
434 bip->bip_buf = buf;
435 bip->bip_size = len;
436 bip->bip_sector = bio->bi_sector;
466 bip->bip_end_io = bio->bi_end_io;
535 struct bio_integrity_payload *bip =
537 struct bio *bio = bip->bip_bio;
543 bio->bi_end_io = bip->bip_end_io;
561 struct bio_integrity_payload *bip = bio->bi_integrity;
563 BUG_ON(bip->bip_bio != bio);
570 bio->bi_end_io = bip->bip_end_io;
576 INIT_WORK(&bip->bip_work, bio_integrity_verify_fn);
577 queue_work(kintegrityd_wq, &bip->bip_work);
583 * @bip: Integrity vector to advance
586 void bio_integrity_mark_head(struct bio_integrity_payload *bip,
592 bip_for_each_vec(iv, bip, i) {
594 bip->bip_idx = i;
601 bip->bip_idx = i;
609 * @bip: Integrity vector to truncate
612 void bio_integrity_mark_tail(struct bio_integrity_payload *bip,
618 bip_for_each_vec(iv, bip, i) {
620 bip->bip_vcnt = i;
642 struct bio_integrity_payload *bip = bio->bi_integrity;
646 BUG_ON(bip == NULL);
650 bio_integrity_mark_head(bip, nr_sectors * bi->tuple_size);
668 struct bio_integrity_payload *bip = bio->bi_integrity;
672 BUG_ON(bip == NULL);
677 bip->bip_sector = bip->bip_sector + offset;
678 bio_integrity_mark_head(bip, offset * bi->tuple_size);
679 bio_integrity_mark_tail(bip, sectors * bi->tuple_size);
694 struct bio_integrity_payload *bip = bio->bi_integrity;
702 BUG_ON(bip->bip_vcnt != 1);
709 bp->iv1 = bip->bip_vec[0];
710 bp->iv2 = bip->bip_vec[0];
732 * @bs: bio_set to allocate bip from
734 * Description: Called to allocate a bip when cloning a bio
740 struct bio_integrity_payload *bip;
744 bip = bio_integrity_alloc_bioset(bio, gfp_mask, bip_src->bip_vcnt, bs);
746 if (bip == NULL)
749 memcpy(bip->bip_vec, bip_src->bip_vec,
752 bip->bip_sector = bip_src->bip_sector;
753 bip->bip_vcnt = bip_src->bip_vcnt;
754 bip->bip_idx = bip_src->bip_idx;