Lines Matching refs:tgt
205 struct dm_target *tgt = t->targets + i; in dm_table_destroy() local
207 if (tgt->type->dtr) in dm_table_destroy()
208 tgt->type->dtr(tgt); in dm_table_destroy()
210 dm_put_target_type(tgt->type); in dm_table_destroy()
666 struct dm_target *tgt; in dm_table_add_target() local
676 tgt = t->targets + t->num_targets; in dm_table_add_target()
677 memset(tgt, 0, sizeof(*tgt)); in dm_table_add_target()
684 tgt->type = dm_get_target_type(type); in dm_table_add_target()
685 if (!tgt->type) { in dm_table_add_target()
690 if (dm_target_needs_singleton(tgt->type)) { in dm_table_add_target()
692 tgt->error = "singleton target type must appear alone in table"; in dm_table_add_target()
698 if (dm_target_always_writeable(tgt->type) && !(t->mode & FMODE_WRITE)) { in dm_table_add_target()
699 tgt->error = "target type may not be included in a read-only table"; in dm_table_add_target()
704 if (t->immutable_target_type != tgt->type) { in dm_table_add_target()
705 tgt->error = "immutable target type cannot be mixed with other target types"; in dm_table_add_target()
708 } else if (dm_target_is_immutable(tgt->type)) { in dm_table_add_target()
710 tgt->error = "immutable target type cannot be mixed with other target types"; in dm_table_add_target()
713 t->immutable_target_type = tgt->type; in dm_table_add_target()
716 if (dm_target_has_integrity(tgt->type)) in dm_table_add_target()
719 tgt->table = t; in dm_table_add_target()
720 tgt->begin = start; in dm_table_add_target()
721 tgt->len = len; in dm_table_add_target()
722 tgt->error = "Unknown error"; in dm_table_add_target()
727 if (!adjoin(t, tgt)) { in dm_table_add_target()
728 tgt->error = "Gap in table"; in dm_table_add_target()
734 tgt->error = "couldn't split parameters (insufficient memory)"; in dm_table_add_target()
738 r = tgt->type->ctr(tgt, argc, argv); in dm_table_add_target()
743 t->highs[t->num_targets++] = tgt->begin + tgt->len - 1; in dm_table_add_target()
745 if (!tgt->num_discard_bios && tgt->discards_supported) in dm_table_add_target()
752 DMERR("%s: %s: %s", dm_device_name(t->md), type, tgt->error); in dm_table_add_target()
753 dm_put_target_type(tgt->type); in dm_table_add_target()
892 struct dm_target *tgt; in dm_table_determine_type() local
908 tgt = t->targets + i; in dm_table_determine_type()
909 if (dm_target_hybrid(tgt)) in dm_table_determine_type()
911 else if (dm_target_request_based(tgt)) in dm_table_determine_type()
973 tgt = dm_table_get_immutable_target(t); in dm_table_determine_type()
974 if (!tgt) { in dm_table_determine_type()
977 } else if (tgt->max_io_len) { in dm_table_determine_type()
983 if (!tgt->type->iterate_devices || in dm_table_determine_type()
984 !tgt->type->iterate_devices(tgt, device_is_rq_stackable, NULL)) { in dm_table_determine_type()