Lines Matching refs:tgt
203 struct dm_target *tgt = t->targets + i; in dm_table_destroy() local
205 if (tgt->type->dtr) in dm_table_destroy()
206 tgt->type->dtr(tgt); in dm_table_destroy()
208 dm_put_target_type(tgt->type); in dm_table_destroy()
653 struct dm_target *tgt; in dm_table_add_target() local
663 tgt = t->targets + t->num_targets; in dm_table_add_target()
664 memset(tgt, 0, sizeof(*tgt)); in dm_table_add_target()
671 tgt->type = dm_get_target_type(type); in dm_table_add_target()
672 if (!tgt->type) { in dm_table_add_target()
677 if (dm_target_needs_singleton(tgt->type)) { in dm_table_add_target()
679 tgt->error = "singleton target type must appear alone in table"; in dm_table_add_target()
685 if (dm_target_always_writeable(tgt->type) && !(t->mode & FMODE_WRITE)) { in dm_table_add_target()
686 tgt->error = "target type may not be included in a read-only table"; in dm_table_add_target()
691 if (t->immutable_target_type != tgt->type) { in dm_table_add_target()
692 tgt->error = "immutable target type cannot be mixed with other target types"; in dm_table_add_target()
695 } else if (dm_target_is_immutable(tgt->type)) { in dm_table_add_target()
697 tgt->error = "immutable target type cannot be mixed with other target types"; in dm_table_add_target()
700 t->immutable_target_type = tgt->type; in dm_table_add_target()
703 if (dm_target_has_integrity(tgt->type)) in dm_table_add_target()
706 tgt->table = t; in dm_table_add_target()
707 tgt->begin = start; in dm_table_add_target()
708 tgt->len = len; in dm_table_add_target()
709 tgt->error = "Unknown error"; in dm_table_add_target()
714 if (!adjoin(t, tgt)) { in dm_table_add_target()
715 tgt->error = "Gap in table"; in dm_table_add_target()
721 tgt->error = "couldn't split parameters (insufficient memory)"; in dm_table_add_target()
725 r = tgt->type->ctr(tgt, argc, argv); in dm_table_add_target()
730 t->highs[t->num_targets++] = tgt->begin + tgt->len - 1; in dm_table_add_target()
732 if (!tgt->num_discard_bios && tgt->discards_supported) in dm_table_add_target()
739 DMERR("%s: %s: %s", dm_device_name(t->md), type, tgt->error); in dm_table_add_target()
740 dm_put_target_type(tgt->type); in dm_table_add_target()
879 struct dm_target *tgt; in dm_table_determine_type() local
895 tgt = t->targets + i; in dm_table_determine_type()
896 if (dm_target_hybrid(tgt)) in dm_table_determine_type()
898 else if (dm_target_request_based(tgt)) in dm_table_determine_type()
960 tgt = dm_table_get_immutable_target(t); in dm_table_determine_type()
961 if (!tgt) { in dm_table_determine_type()
964 } else if (tgt->max_io_len) { in dm_table_determine_type()
970 if (!tgt->type->iterate_devices || in dm_table_determine_type()
971 !tgt->type->iterate_devices(tgt, device_is_rq_stackable, NULL)) { in dm_table_determine_type()