Lines Matching defs:bmd
682 static void bio_set_map_data(struct bio_map_data *bmd, struct bio *bio,
686 memcpy(bmd->iovecs, bio->bi_io_vec, sizeof(struct bio_vec) * bio->bi_vcnt);
687 memcpy(bmd->sgvecs, iov, sizeof(struct sg_iovec) * iov_count);
688 bmd->nr_sgvecs = iov_count;
689 bmd->is_our_pages = is_our_pages;
690 bio->bi_private = bmd;
693 static void bio_free_map_data(struct bio_map_data *bmd)
695 kfree(bmd->iovecs);
696 kfree(bmd->sgvecs);
697 kfree(bmd);
703 struct bio_map_data *bmd;
708 bmd = kmalloc(sizeof(*bmd), gfp_mask);
709 if (!bmd)
712 bmd->iovecs = kmalloc(sizeof(struct bio_vec) * nr_segs, gfp_mask);
713 if (!bmd->iovecs) {
714 kfree(bmd);
718 bmd->sgvecs = kmalloc(sizeof(struct sg_iovec) * iov_count, gfp_mask);
719 if (bmd->sgvecs)
720 return bmd;
722 kfree(bmd->iovecs);
723 kfree(bmd);
788 struct bio_map_data *bmd = bio->bi_private;
792 ret = __bio_copy_iov(bio, bmd->iovecs, bmd->sgvecs,
793 bmd->nr_sgvecs, bio_data_dir(bio) == READ,
794 0, bmd->is_our_pages);
795 bio_free_map_data(bmd);
819 struct bio_map_data *bmd;
850 bmd = bio_alloc_map_data(nr_pages, iov_count, gfp_mask);
851 if (!bmd)
914 bio_set_map_data(bmd, bio, iov, iov_count, map_data ? 0 : 1);
923 bio_free_map_data(bmd);
1234 struct bio_map_data *bmd = bio->bi_private;
1236 char *p = bmd->sgvecs[0].iov_base;
1240 int len = bmd->iovecs[i].bv_len;
1249 bio_free_map_data(bmd);