Lines Matching refs:vds
401 typedef struct vds { struct
445 vds_t *vds; /* server for this vdisk */ member
681 static void vds_driver_types_free(vds_t *vds);
5381 vds_t *vds; in vds_detach() local
5398 if ((vds = ddi_get_soft_state(vds_state, instance)) == NULL) { in vds_detach()
5405 mod_hash_walk(vds->vd_table, vds_check_for_vd, &vd_present); in vds_detach()
5412 if (vds->initialized & VDS_MDEG) { in vds_detach()
5413 (void) mdeg_unregister(vds->mdeg); in vds_detach()
5414 kmem_free(vds->ispecp->specp, sizeof (vds_prop_template)); in vds_detach()
5415 kmem_free(vds->ispecp, sizeof (mdeg_node_spec_t)); in vds_detach()
5416 vds->ispecp = NULL; in vds_detach()
5417 vds->mdeg = NULL; in vds_detach()
5420 vds_driver_types_free(vds); in vds_detach()
5422 if (vds->initialized & VDS_LDI) in vds_detach()
5423 (void) ldi_ident_release(vds->ldi_ident); in vds_detach()
5424 mod_hash_destroy_hash(vds->vd_table); in vds_detach()
5597 vd->vds->ldi_ident); in vd_setup_full_disk()
5602 &vd->ldi_handle[slice], vd->vds->ldi_ident); in vd_setup_full_disk()
5898 !(DEVI_IS_ATTACHING(vd->vds->dip)))) { in vd_setup_backend_vnode()
5920 vd->vds->ldi_ident); in vd_setup_backend_vnode()
6061 if (ddi_devid_init(vd->vds->dip, DEVID_FAB, NULL, 0, in vd_setup_disk_image()
6105 &vd->ldi_handle[0], vd->vds->ldi_ident); in vd_open_using_ldi_by_name()
6114 kcred, &vd->ldi_handle[0], vd->vds->ldi_ident); in vd_open_using_ldi_by_name()
6507 vds_t *vds = vd->vds; in vd_identify_dev() local
6530 for (i = 0; i < vds->num_drivers; i++) { in vd_identify_dev()
6531 if (vds->driver_types[i].type == VD_DRIVER_UNKNOWN) { in vd_identify_dev()
6535 if (strcmp(drv_name, vds->driver_types[i].name) == 0) { in vd_identify_dev()
6536 drv_type = vds->driver_types[i].type; in vd_identify_dev()
6676 !(DEVI_IS_ATTACHING(vd->vds->dip))) { in vd_setup_vd()
6704 if ((vd->ioq = ddi_taskq_create(vd->vds->dip, tq_name, in vd_setup_vd()
6715 vds_do_init_vd(vds_t *vds, uint64_t id, char *device_path, uint64_t options, in vds_do_init_vd() argument
6725 ASSERT(vds != NULL); in vds_do_init_vd()
6736 vd->vds = vds; in vds_do_init_vd()
6775 if (ddi_get_soft_iblock_cookie(vds->dip, DDI_SOFTINT_MED, in vds_do_init_vd()
6788 if ((vd->startq = ddi_taskq_create(vds->dip, tq_name, 1, in vds_do_init_vd()
6795 if ((vd->completionq = ddi_taskq_create(vds->dip, tq_name, 1, in vds_do_init_vd()
6810 ldc_attr.instance = ddi_get_instance(vds->dip); in vds_do_init_vd()
6846 if (mod_hash_insert(vds->vd_table, (mod_hash_key_t)id, vd) != 0) { in vds_do_init_vd()
7000 vds_init_vd(vds_t *vds, uint64_t id, char *device_path, uint64_t options, in vds_init_vd() argument
7007 if ((status = vds_do_init_vd(vds, id, device_path, options, in vds_init_vd()
7124 vds_driver_types_free(vds_t *vds) in vds_driver_types_free() argument
7126 if (vds->driver_types != NULL) { in vds_driver_types_free()
7127 kmem_free(vds->driver_types, sizeof (vd_driver_type_t) * in vds_driver_types_free()
7128 vds->num_drivers); in vds_driver_types_free()
7129 vds->driver_types = NULL; in vds_driver_types_free()
7130 vds->num_drivers = 0; in vds_driver_types_free()
7138 vds_driver_types_update(vds_t *vds) in vds_driver_types_update() argument
7143 if (ddi_prop_lookup_string_array(DDI_DEV_T_ANY, vds->dip, in vds_driver_types_update()
7156 vds->num_drivers = num; in vds_driver_types_update()
7157 vds->driver_types = kmem_zalloc(sizeof (vd_driver_type_t) * num, in vds_driver_types_update()
7189 vds->driver_types[i].type = VD_DRIVER_DISK; in vds_driver_types_update()
7193 vds->driver_types[i].type = VD_DRIVER_VOLUME; in vds_driver_types_update()
7202 (void) strncpy(vds->driver_types[i].name, list[i], len); in vds_driver_types_update()
7214 vds_driver_types_free(vds); in vds_driver_types_update()
7219 vds_add_vd(vds_t *vds, md_t *md, mde_cookie_t vd_node) in vds_add_vd() argument
7242 if (vds_init_vd(vds, id, device_path, options, ldc_id) != 0) { in vds_add_vd()
7244 if (mod_hash_destroy(vds->vd_table, (mod_hash_key_t)id) != 0) in vds_add_vd()
7251 vds_remove_vd(vds_t *vds, md_t *md, mde_cookie_t vd_node) in vds_remove_vd() argument
7262 if (mod_hash_destroy(vds->vd_table, (mod_hash_key_t)id) != 0) in vds_remove_vd()
7267 vds_change_vd(vds_t *vds, md_t *prev_md, mde_cookie_t prev_vd_node, in vds_change_vd() argument
7337 if (mod_hash_destroy(vds->vd_table, (mod_hash_key_t)prev_id) != 0) in vds_change_vd()
7341 if (vds_init_vd(vds, curr_id, curr_dev, curr_options, in vds_change_vd()
7352 vds_t *vds = arg; in vds_process_md() local
7357 ASSERT(vds != NULL); in vds_process_md()
7360 vds_remove_vd(vds, md->removed.mdp, md->removed.mdep[i]); in vds_process_md()
7362 vds_change_vd(vds, md->match_prev.mdp, md->match_prev.mdep[i], in vds_process_md()
7365 vds_add_vd(vds, md->added.mdp, md->added.mdep[i]); in vds_process_md()
7377 vds_t *vds; in vds_do_attach() local
7407 if ((vds = ddi_get_soft_state(vds_state, instance)) == NULL) { in vds_do_attach()
7413 vds->dip = dip; in vds_do_attach()
7414 vds->vd_table = mod_hash_create_ptrhash("vds_vd_table", VDS_NCHAINS, in vds_do_attach()
7417 ASSERT(vds->vd_table != NULL); in vds_do_attach()
7419 if ((status = ldi_ident_from_dip(dip, &vds->ldi_ident)) != 0) { in vds_do_attach()
7423 vds->initialized |= VDS_LDI; in vds_do_attach()
7437 if (mdeg_register(ispecp, &vd_match, vds_process_md, vds, in vds_do_attach()
7438 &vds->mdeg) != MDEG_SUCCESS) { in vds_do_attach()
7445 vds->ispecp = ispecp; in vds_do_attach()
7446 vds->initialized |= VDS_MDEG; in vds_do_attach()
7456 vds_driver_types_update(vds); in vds_do_attach()