Lines Matching defs:vd
62 vdev_t *vd;
94 vdev_geom_set_physpath(vdev_t *vd, struct g_consumer *cp,
109 old_physpath = vd->vdev_physpath;
110 vd->vdev_physpath = spa_strdup(physpath);
114 vd->vdev_physpath) != 0);
127 spa_async_request(vd->vdev_spa, SPA_ASYNC_CONFIG_UPDATE);
142 vdev_t *vd = elem->vd;
144 vdev_geom_set_physpath(vd, cp, /* null_update */B_TRUE);
156 vdev_t *vd;
163 vd = elem->vd;
164 if (vd->vdev_state != VDEV_STATE_HEALTHY)
166 spa = vd->vdev_spa;
169 vdev_online(spa, vd->vdev_guid, ZFS_ONLINE_EXPAND, NULL);
203 vdev_t *vd = elem->vd;
205 vd->vdev_remove_wanted = B_TRUE;
206 spa_async_request(vd->vdev_spa, SPA_ASYNC_REMOVE);
211 vdev_geom_attach(struct g_provider *pp, vdev_t *vd, boolean_t sanity)
300 if (vd != NULL)
301 vd->vdev_tsd = cp;
339 vdev_geom_close_locked(vdev_t *vd)
347 cp = vd->vdev_tsd;
348 vd->vdev_delayed_close = B_FALSE;
355 vd->vdev_tsd = NULL;
357 if (elem->vd == vd) {
645 vdev_attach_ok(vdev_t *vd, struct g_provider *pp)
679 if (pool_guid != 0 && pool_guid != spa_guid(vd->vdev_spa)) {
682 (uintmax_t)spa_guid(vd->vdev_spa), (uintmax_t)pool_guid);
691 if (vdev_guid == vd->vdev_guid) {
694 } else if (top_guid == vd->vdev_guid && vd == vd->vdev_top) {
699 pp->name, (uintmax_t)vd->vdev_guid, (uintmax_t)vdev_guid);
704 vdev_geom_attach_by_guids(vdev_t *vd)
715 vdpath = vd->vdev_path + sizeof ("/dev/") - 1;
726 match = vdev_attach_ok(vd, pp);
743 cp = vdev_geom_attach(best_pp, vd, B_TRUE);
753 vdev_geom_open_by_guids(vdev_t *vd)
762 (uintmax_t)spa_guid(vd->vdev_spa), (uintmax_t)vd->vdev_guid);
763 cp = vdev_geom_attach_by_guids(vd);
769 spa_strfree(vd->vdev_path);
770 vd->vdev_path = buf;
773 (uintmax_t)spa_guid(vd->vdev_spa),
774 (uintmax_t)vd->vdev_guid, cp->provider->name);
777 (uintmax_t)spa_guid(vd->vdev_spa),
778 (uintmax_t)vd->vdev_guid);
785 vdev_geom_open_by_path(vdev_t *vd, int check_guid)
793 pp = g_provider_by_name(vd->vdev_path + sizeof ("/dev/") - 1);
795 ZFS_LOG(1, "Found provider by name %s.", vd->vdev_path);
796 if (!check_guid || vdev_attach_ok(vd, pp) == FULL_MATCH)
797 cp = vdev_geom_attach(pp, vd, B_FALSE);
804 vdev_geom_open(vdev_t *vd, uint64_t *psize, uint64_t *max_psize,
816 VERIFY0(tsd_set(zfs_geom_probe_vdev_key, vd));
821 if (vd->vdev_path == NULL || strncmp(vd->vdev_path, "/dev/", 5) != 0) {
822 vd->vdev_stat.vs_aux = VDEV_AUX_BAD_LABEL;
830 if ((cp = vd->vdev_tsd) != NULL) {
831 ASSERT(vd->vdev_reopening);
839 if (vd->vdev_spa->spa_is_splitting ||
840 ((vd->vdev_prevstate == VDEV_STATE_UNKNOWN &&
841 (vd->vdev_spa->spa_load_state == SPA_LOAD_NONE ||
842 vd->vdev_spa->spa_load_state == SPA_LOAD_CREATE)))) {
857 cp = vdev_geom_open_by_path(vd, 0);
863 cp = vdev_geom_open_by_path(vd, 1);
866 * The device at vd->vdev_path doesn't have the
871 cp = vdev_geom_open_by_guids(vd);
879 ZFS_LOG(1, "Vdev %s not found.", vd->vdev_path);
890 elem->vd = vd;
893 spamode = spa_mode(vd->vdev_spa);
899 vdev_geom_close_locked(vd);
910 tsleep(vd, 0, "vdev", hz / 2);
917 vdev_geom_close_locked(vd);
928 vdev_geom_set_physpath(vd, cp, /* do_null_update */B_FALSE);
934 vd->vdev_stat.vs_aux = VDEV_AUX_OPEN_FAILED;
935 vdev_dbgmsg(vd, "vdev_geom_open: failed to open [error=%d]",
961 vd->vdev_nowritecache = B_FALSE;
966 vd->vdev_nonrot = B_TRUE;
968 vd->vdev_nonrot = B_FALSE;
972 vd->vdev_has_trim = (error == 0 && has_trim);
976 vd->vdev_has_securetrim = B_FALSE;
982 vdev_geom_close(vdev_t *vd)
987 cp = vd->vdev_tsd;
994 if (!vd->vdev_reopening ||
997 vdev_geom_close_locked(vd);
1007 vdev_t *vd;
1011 vd = zio->io_vd;
1018 if (!vd->vdev_remove_wanted) {
1024 vd->vdev_remove_wanted = B_TRUE;
1027 } else if (!vd->vdev_delayed_close) {
1028 vd->vdev_delayed_close = B_TRUE;
1131 vdev_t *vd;
1135 vd = zio->io_vd;
1139 if (!vdev_readable(vd)) {
1150 if (vd->vdev_nowritecache) {
1167 cp = vd->vdev_tsd;
1264 vdev_geom_hold(vdev_t *vd)
1269 vdev_geom_rele(vdev_t *vd)