Lines Matching defs:multi
2650 struct btrfs_multi_bio *multi = NULL;
2656 multi = kzalloc(btrfs_multi_bio_size(stripes_allocated),
2658 if (!multi)
2661 atomic_set(&multi->error, 0);
2669 kfree(multi);
2687 /* if our multi bio struct is too small, back off and try again */
2702 kfree(multi);
2787 multi->stripes[i].physical =
2790 multi->stripes[i].dev = map->stripes[stripe_index].dev;
2795 *multi_ret = multi;
2796 multi->num_stripes = num_stripes;
2797 multi->max_errors = max_errors;
2887 struct btrfs_multi_bio *multi = bio->bi_private;
2891 atomic_inc(&multi->error);
2893 if (bio == multi->orig_bio)
2896 if (atomic_dec_and_test(&multi->stripes_pending)) {
2899 bio = multi->orig_bio;
2901 bio->bi_private = multi->private;
2902 bio->bi_end_io = multi->end_io;
2904 * beyond the tolerance of the multi-bio
2906 if (atomic_read(&multi->error) > multi->max_errors) {
2916 kfree(multi);
2996 struct btrfs_multi_bio *multi = NULL;
3005 ret = btrfs_map_block(map_tree, rw, logical, &map_length, &multi,
3009 total_devs = multi->num_stripes;
3017 multi->end_io = first_bio->bi_end_io;
3018 multi->private = first_bio->bi_private;
3019 multi->orig_bio = first_bio;
3020 atomic_set(&multi->stripes_pending, multi->num_stripes);
3030 bio->bi_private = multi;
3033 bio->bi_sector = multi->stripes[dev_nr].physical >> 9;
3034 dev = multi->stripes[dev_nr].dev;
3050 kfree(multi);