Lines Matching refs:tgt
187 struct dm_target *tgt = t->targets + i; in dm_table_destroy() local
189 if (tgt->type->dtr) in dm_table_destroy()
190 tgt->type->dtr(tgt); in dm_table_destroy()
192 dm_put_target_type(tgt->type); in dm_table_destroy()
641 struct dm_target *tgt; in dm_table_add_target() local
651 tgt = t->targets + t->num_targets; in dm_table_add_target()
652 memset(tgt, 0, sizeof(*tgt)); in dm_table_add_target()
659 tgt->type = dm_get_target_type(type); in dm_table_add_target()
660 if (!tgt->type) { in dm_table_add_target()
665 if (dm_target_needs_singleton(tgt->type)) { in dm_table_add_target()
667 tgt->error = "singleton target type must appear alone in table"; in dm_table_add_target()
673 if (dm_target_always_writeable(tgt->type) && !(t->mode & FMODE_WRITE)) { in dm_table_add_target()
674 tgt->error = "target type may not be included in a read-only table"; in dm_table_add_target()
679 if (t->immutable_target_type != tgt->type) { in dm_table_add_target()
680 tgt->error = "immutable target type cannot be mixed with other target types"; in dm_table_add_target()
683 } else if (dm_target_is_immutable(tgt->type)) { in dm_table_add_target()
685 tgt->error = "immutable target type cannot be mixed with other target types"; in dm_table_add_target()
688 t->immutable_target_type = tgt->type; in dm_table_add_target()
691 if (dm_target_has_integrity(tgt->type)) in dm_table_add_target()
694 tgt->table = t; in dm_table_add_target()
695 tgt->begin = start; in dm_table_add_target()
696 tgt->len = len; in dm_table_add_target()
697 tgt->error = "Unknown error"; in dm_table_add_target()
702 if (!adjoin(t, tgt)) { in dm_table_add_target()
703 tgt->error = "Gap in table"; in dm_table_add_target()
709 tgt->error = "couldn't split parameters (insufficient memory)"; in dm_table_add_target()
713 r = tgt->type->ctr(tgt, argc, argv); in dm_table_add_target()
718 t->highs[t->num_targets++] = tgt->begin + tgt->len - 1; in dm_table_add_target()
720 if (!tgt->num_discard_bios && tgt->discards_supported) in dm_table_add_target()
727 DMERR("%s: %s: %s", dm_device_name(t->md), type, tgt->error); in dm_table_add_target()
728 dm_put_target_type(tgt->type); in dm_table_add_target()
862 struct dm_target *tgt; in dm_table_determine_type() local
878 tgt = t->targets + i; in dm_table_determine_type()
879 if (dm_target_hybrid(tgt)) in dm_table_determine_type()
881 else if (dm_target_request_based(tgt)) in dm_table_determine_type()
943 tgt = dm_table_get_immutable_target(t); in dm_table_determine_type()
944 if (!tgt) { in dm_table_determine_type()
947 } else if (tgt->max_io_len) { in dm_table_determine_type()
953 if (!tgt->type->iterate_devices || in dm_table_determine_type()
954 !tgt->type->iterate_devices(tgt, device_is_rq_stackable, NULL)) { in dm_table_determine_type()