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()
662 struct dm_target *tgt; in dm_table_add_target() local
672 tgt = t->targets + t->num_targets; in dm_table_add_target()
673 memset(tgt, 0, sizeof(*tgt)); in dm_table_add_target()
680 tgt->type = dm_get_target_type(type); in dm_table_add_target()
681 if (!tgt->type) { in dm_table_add_target()
686 if (dm_target_needs_singleton(tgt->type)) { in dm_table_add_target()
688 tgt->error = "singleton target type must appear alone in table"; in dm_table_add_target()
694 if (dm_target_always_writeable(tgt->type) && !(t->mode & FMODE_WRITE)) { in dm_table_add_target()
695 tgt->error = "target type may not be included in a read-only table"; in dm_table_add_target()
700 if (t->immutable_target_type != tgt->type) { in dm_table_add_target()
701 tgt->error = "immutable target type cannot be mixed with other target types"; in dm_table_add_target()
704 } else if (dm_target_is_immutable(tgt->type)) { in dm_table_add_target()
706 tgt->error = "immutable target type cannot be mixed with other target types"; in dm_table_add_target()
709 t->immutable_target_type = tgt->type; in dm_table_add_target()
712 if (dm_target_has_integrity(tgt->type)) in dm_table_add_target()
715 tgt->table = t; in dm_table_add_target()
716 tgt->begin = start; in dm_table_add_target()
717 tgt->len = len; in dm_table_add_target()
718 tgt->error = "Unknown error"; in dm_table_add_target()
723 if (!adjoin(t, tgt)) { in dm_table_add_target()
724 tgt->error = "Gap in table"; in dm_table_add_target()
730 tgt->error = "couldn't split parameters (insufficient memory)"; in dm_table_add_target()
734 r = tgt->type->ctr(tgt, argc, argv); in dm_table_add_target()
739 t->highs[t->num_targets++] = tgt->begin + tgt->len - 1; in dm_table_add_target()
741 if (!tgt->num_discard_bios && tgt->discards_supported) in dm_table_add_target()
748 DMERR("%s: %s: %s", dm_device_name(t->md), type, tgt->error); in dm_table_add_target()
749 dm_put_target_type(tgt->type); in dm_table_add_target()
888 struct dm_target *tgt; in dm_table_determine_type() local
904 tgt = t->targets + i; in dm_table_determine_type()
905 if (dm_target_hybrid(tgt)) in dm_table_determine_type()
907 else if (dm_target_request_based(tgt)) in dm_table_determine_type()
969 tgt = dm_table_get_immutable_target(t); in dm_table_determine_type()
970 if (!tgt) { in dm_table_determine_type()
973 } else if (tgt->max_io_len) { in dm_table_determine_type()
979 if (!tgt->type->iterate_devices || in dm_table_determine_type()
980 !tgt->type->iterate_devices(tgt, device_is_rq_stackable, NULL)) { in dm_table_determine_type()