Lines Matching refs:dvd
99 vdev_disk_t *dvd; in vdev_disk_alloc() local
101 dvd = vd->vdev_tsd = kmem_zalloc(sizeof (vdev_disk_t), KM_SLEEP); in vdev_disk_alloc()
105 list_create(&dvd->vd_ldi_cbs, sizeof (vdev_disk_ldi_cb_t), in vdev_disk_alloc()
112 vdev_disk_t *dvd = vd->vdev_tsd; in vdev_disk_free() local
115 if (dvd == NULL) in vdev_disk_free()
122 while ((lcb = list_head(&dvd->vd_ldi_cbs)) != NULL) { in vdev_disk_free()
123 list_remove(&dvd->vd_ldi_cbs, lcb); in vdev_disk_free()
127 list_destroy(&dvd->vd_ldi_cbs); in vdev_disk_free()
128 kmem_free(dvd, sizeof (vdev_disk_t)); in vdev_disk_free()
137 vdev_disk_t *dvd = vd->vdev_tsd; in vdev_disk_off_notify() local
149 dvd->vd_ldi_offline = B_TRUE; in vdev_disk_off_notify()
290 vdev_disk_t *dvd = vd->vdev_tsd; in vdev_disk_open() local
318 if (dvd != NULL) { in vdev_disk_open()
327 dvd = vd->vdev_tsd; in vdev_disk_open()
357 if (ddi_devid_str_decode(vd->vdev_devid, &dvd->vd_devid, in vdev_disk_open()
358 &dvd->vd_minor) != 0) { in vdev_disk_open()
375 &dvd->vd_lh, zfs_li); in vdev_disk_open()
388 &dvd->vd_lh, zfs_li); in vdev_disk_open()
404 kcred, &dvd->vd_lh, zfs_li); in vdev_disk_open()
413 if (ldi_get_devid(dvd->vd_lh, &devid) != 0) { in vdev_disk_open()
422 } else if (ddi_devid_compare(devid, dvd->vd_devid) != in vdev_disk_open()
428 dvd->vd_minor); in vdev_disk_open()
438 (void) ldi_close(dvd->vd_lh, spa_mode(spa), in vdev_disk_open()
440 dvd->vd_lh = NULL; in vdev_disk_open()
461 error = ldi_open_by_devid(dvd->vd_devid, dvd->vd_minor, in vdev_disk_open()
462 spa_mode(spa), kcred, &dvd->vd_lh, zfs_li); in vdev_disk_open()
481 kcred, &dvd->vd_lh, zfs_li); in vdev_disk_open()
491 kcred, &dvd->vd_lh, zfs_li); in vdev_disk_open()
510 spa_mode(spa), kcred, &dvd->vd_lh, zfs_li)) != 0) { in vdev_disk_open()
539 if (ldi_get_devid(dvd->vd_lh, &devid) != 0 || in vdev_disk_open()
540 ldi_get_minor_name(dvd->vd_lh, &minorname) != 0) { in vdev_disk_open()
546 if (dvd->vd_minor != NULL || dvd->vd_devid != NULL || in vdev_disk_open()
555 } else if (dvd->vd_devid == NULL || dvd->vd_minor == NULL) { in vdev_disk_open()
562 } else if (ddi_devid_compare(devid, dvd->vd_devid) != 0 || in vdev_disk_open()
563 strcmp(minorname, dvd->vd_minor) != 0) { in vdev_disk_open()
593 if (dvd->vd_minor != NULL) { in vdev_disk_open()
594 ddi_devid_str_free(dvd->vd_minor); in vdev_disk_open()
595 dvd->vd_minor = NULL; in vdev_disk_open()
597 if (dvd->vd_devid != NULL) { in vdev_disk_open()
598 ddi_devid_free(dvd->vd_devid); in vdev_disk_open()
599 dvd->vd_devid = NULL; in vdev_disk_open()
612 dvd->vd_minor = minorname; in vdev_disk_open()
613 dvd->vd_devid = devid; in vdev_disk_open()
629 if (ldi_get_dev(dvd->vd_lh, &dev) == 0 && in vdev_disk_open()
630 ldi_get_otyp(dvd->vd_lh, &otyp) == 0) { in vdev_disk_open()
636 ldi_get_minor_name(dvd->vd_lh, &minorname) == 0 && in vdev_disk_open()
653 if (ldi_ev_get_cookie(dvd->vd_lh, LDI_EV_OFFLINE, &ecookie) == in vdev_disk_open()
656 list_insert_tail(&dvd->vd_ldi_cbs, lcb); in vdev_disk_open()
657 (void) ldi_ev_register_callbacks(dvd->vd_lh, ecookie, in vdev_disk_open()
664 if (ldi_ev_get_cookie(dvd->vd_lh, LDI_EV_DEGRADE, &ecookie) == in vdev_disk_open()
667 list_insert_tail(&dvd->vd_ldi_cbs, lcb); in vdev_disk_open()
668 (void) ldi_ev_register_callbacks(dvd->vd_lh, ecookie, in vdev_disk_open()
676 if (ldi_get_size(dvd->vd_lh, psize) != 0) { in vdev_disk_open()
688 if ((error = ldi_ioctl(dvd->vd_lh, DKIOCGMEDIAINFOEXT, in vdev_disk_open()
693 } else if ((error = ldi_ioctl(dvd->vd_lh, DKIOCGMEDIAINFO, in vdev_disk_open()
727 (void) ldi_ioctl(dvd->vd_lh, DKIOCSETWCE, (intptr_t)&wce, in vdev_disk_open()
737 if (ldi_ioctl(dvd->vd_lh, DKIOC_CANFREE, (intptr_t)&can_free, FKIOCTL, in vdev_disk_open()
752 if (ldi_prop_exists(dvd->vd_lh, DDI_PROP_DONTPASS | DDI_PROP_NOTPROM, in vdev_disk_open()
754 if (ldi_prop_get_int(dvd->vd_lh, in vdev_disk_open()
766 vdev_disk_t *dvd = vd->vdev_tsd; in vdev_disk_close() local
768 if (vd->vdev_reopening || dvd == NULL) in vdev_disk_close()
771 if (dvd->vd_minor != NULL) { in vdev_disk_close()
772 ddi_devid_str_free(dvd->vd_minor); in vdev_disk_close()
773 dvd->vd_minor = NULL; in vdev_disk_close()
776 if (dvd->vd_devid != NULL) { in vdev_disk_close()
777 ddi_devid_free(dvd->vd_devid); in vdev_disk_close()
778 dvd->vd_devid = NULL; in vdev_disk_close()
781 if (dvd->vd_lh != NULL) { in vdev_disk_close()
782 (void) ldi_close(dvd->vd_lh, spa_mode(vd->vdev_spa), kcred); in vdev_disk_close()
783 dvd->vd_lh = NULL; in vdev_disk_close()
823 vdev_disk_t *dvd = vd->vdev_tsd; in vdev_disk_dumpio() local
830 if (dvd == NULL || dvd->vd_ldi_offline) { in vdev_disk_dumpio()
843 ASSERT3P(dvd, !=, NULL); in vdev_disk_dumpio()
844 return (ldi_dump(dvd->vd_lh, data, lbtodb(offset), in vdev_disk_dumpio()
848 return (vdev_disk_ldi_physio(dvd->vd_lh, data, size, offset, flags)); in vdev_disk_dumpio()
904 vdev_disk_t *dvd = vd->vdev_tsd; in vdev_disk_io_start() local
915 if (dvd == NULL || dvd->vd_ldi_offline) { in vdev_disk_io_start()
949 error = ldi_ioctl(dvd->vd_lh, zio->io_cmd, in vdev_disk_io_start()
989 zio->io_error = ldi_ioctl(dvd->vd_lh, DKIOCFREE, in vdev_disk_io_start()
1036 if (ldi_strategy(dvd->vd_lh, bp) != 0) { in vdev_disk_io_start()
1054 vdev_disk_t *dvd = vd->vdev_tsd; in vdev_disk_io_done() local
1057 if (ldi_ioctl(dvd->vd_lh, DKIOCSTATE, (intptr_t)&state, in vdev_disk_io_done()