Lines Matching refs:iodev
38 static void insert_iodev(struct snapshot *ss, struct iodev_snapshot *iodev);
98 find_parent(struct snapshot *ss, struct iodev_snapshot *iodev) in find_parent() argument
100 enum iodev_type parent_type = parent_iodev_type(iodev->is_type); in find_parent()
107 if (iodev->is_parent_id.id == IODEV_NO_ID && in find_parent()
108 iodev->is_parent_id.tid[0] == '\0') in find_parent()
115 if (pos->is_id.id != iodev->is_parent_id.id) in find_parent()
123 pos = make_controller(iodev->is_parent_id.id); in find_parent()
130 if (id_match(&iodev->is_parent_id, &pos->is_id) && in find_parent()
138 if (id_match(&iodev->is_parent_id, &pos2->is_id)) in find_parent()
267 insert_into(struct iodev_snapshot **list, struct iodev_snapshot *iodev) in insert_into() argument
275 *list = iodev; in insert_into()
276 ix_new_list(iodev); in insert_into()
289 p = avl_find(l, iodev, &where); in insert_into()
299 if (iodev_cmp(tmp, iodev) > 0) { in insert_into()
300 insert_before(list, tmp, iodev); in insert_into()
310 insert_after(list, tmp, iodev); in insert_into()
327 insert_iodev(struct snapshot *ss, struct iodev_snapshot *iodev) in insert_iodev() argument
329 struct iodev_snapshot *parent = find_parent(ss, iodev); in insert_iodev()
340 insert_into(list, iodev); in insert_iodev()
541 struct iodev_snapshot *iodev; in acquire_iodev_errors() local
561 iodev = find_iodev_by_name(ss->s_iodevs, kstat_name); in acquire_iodev_errors()
563 if (iodev == NULL) in acquire_iodev_errors()
568 if (kstat_copy(ksp, &iodev->is_errors) == -1) in acquire_iodev_errors()
576 get_ids(struct iodev_snapshot *iodev, const char *pretty) in get_ids() argument
609 if (ret == 2 && iodev->is_type == IODEV_PARTITION) { in get_ids()
610 iodev->is_id.id = slice; in get_ids()
611 iodev->is_parent_id.id = disk; in get_ids()
612 (void) strlcpy(iodev->is_parent_id.tid, target, KSTAT_STRLEN); in get_ids()
614 if (iodev->is_type == IODEV_DISK) { in get_ids()
615 iodev->is_id.id = disk; in get_ids()
616 (void) strlcpy(iodev->is_id.tid, target, KSTAT_STRLEN); in get_ids()
617 iodev->is_parent_id.id = ctr; in get_ids()
618 } else if (iodev->is_type == IODEV_IOPATH_LTI) { in get_ids()
619 iodev->is_parent_id.id = disk; in get_ids()
620 (void) strlcpy(iodev->is_parent_id.tid, in get_ids()
629 get_pretty_name(enum snapshot_types types, struct iodev_snapshot *iodev, in get_pretty_name() argument
635 if (iodev->is_type == IODEV_NFS) { in get_pretty_name()
639 iodev->is_pretty = lookup_nfs_name(iodev->is_name, kc); in get_pretty_name()
644 dl = lookup_ks_name(iodev->is_name, (types & SNAP_IODEV_DEVID) ? 1 : 0); in get_pretty_name()
653 iodev->is_dname = safe_strdup(dl->dname); in get_pretty_name()
657 iodev->is_devid = safe_strdup(dl->devidstr); in get_pretty_name()
659 get_ids(iodev, pretty); in get_pretty_name()
665 iodev->is_pretty = pretty; in get_pretty_name()
1102 free_iodev(struct iodev_snapshot *iodev) in free_iodev() argument
1104 while (iodev->is_children) { in free_iodev()
1105 struct iodev_snapshot *tmp = iodev->is_children; in free_iodev()
1106 iodev->is_children = iodev->is_children->is_next; in free_iodev()
1110 if (iodev->avl_list) { in free_iodev()
1111 avl_remove(iodev->avl_list, iodev); in free_iodev()
1112 if (avl_numnodes(iodev->avl_list) == 0) { in free_iodev()
1113 avl_destroy(iodev->avl_list); in free_iodev()
1114 free(iodev->avl_list); in free_iodev()
1118 free(iodev->is_errors.ks_data); in free_iodev()
1119 free(iodev->is_pretty); in free_iodev()
1120 free(iodev->is_dname); in free_iodev()
1121 free(iodev->is_devid); in free_iodev()
1122 free(iodev); in free_iodev()