Symbol: vd
usr/src/boot/common/part.c
718
struct iso_primary_descriptor *vd;
usr/src/boot/common/part.c
731
vd = (struct iso_primary_descriptor *)buf;
usr/src/boot/common/part.c
732
if (bcmp(vd->id, ISO_STANDARD_ID, sizeof (vd->id)) != 0)
usr/src/boot/common/vdisk.c
101
vd->vdisk_unit);
usr/src/boot/common/vdisk.c
126
vd = calloc(1, sizeof (*vd));
usr/src/boot/common/vdisk.c
127
if (vd == NULL) {
usr/src/boot/common/vdisk.c
131
vd->vdisk_path = strdup(argv[1]);
usr/src/boot/common/vdisk.c
132
if (vd->vdisk_path == NULL) {
usr/src/boot/common/vdisk.c
133
free(vd);
usr/src/boot/common/vdisk.c
137
vd->vdisk_fd = open(vd->vdisk_path, O_RDONLY);
usr/src/boot/common/vdisk.c
138
if (vd->vdisk_fd < 0) {
usr/src/boot/common/vdisk.c
140
free(vd->vdisk_path);
usr/src/boot/common/vdisk.c
141
free(vd);
usr/src/boot/common/vdisk.c
145
vd->vdisk_size = sb.st_size;
usr/src/boot/common/vdisk.c
146
vd->vdisk_sectorsz = DEV_BSIZE;
usr/src/boot/common/vdisk.c
149
if (p->vdisk_unit == vd->vdisk_unit) {
usr/src/boot/common/vdisk.c
150
vd->vdisk_unit++;
usr/src/boot/common/vdisk.c
154
if (p->vdisk_unit < vd->vdisk_unit) {
usr/src/boot/common/vdisk.c
157
STAILQ_INSERT_TAIL(&vdisk_list, vd, vdisk_link);
usr/src/boot/common/vdisk.c
160
if (n->vdisk_unit > vd->vdisk_unit) {
usr/src/boot/common/vdisk.c
162
STAILQ_INSERT_AFTER(&vdisk_list, p, vd,
usr/src/boot/common/vdisk.c
167
vd->vdisk_unit++;
usr/src/boot/common/vdisk.c
171
STAILQ_INSERT_HEAD(&vdisk_list, vd, vdisk_link);
usr/src/boot/common/vdisk.c
177
STAILQ_INSERT_TAIL(&vdisk_list, vd, vdisk_link);
usr/src/boot/common/vdisk.c
179
printf("%s: file %s is mapped as %s%d\n", argv[0], vd->vdisk_path,
usr/src/boot/common/vdisk.c
180
vdisk_dev.dv_name, vd->vdisk_unit);
usr/src/boot/common/vdisk.c
193
vdisk_info_t *vd;
usr/src/boot/common/vdisk.c
214
STAILQ_FOREACH(vd, &vdisk_list, vdisk_link) {
usr/src/boot/common/vdisk.c
215
if (vd->vdisk_unit == unit)
usr/src/boot/common/vdisk.c
219
if (vd == NULL) {
usr/src/boot/common/vdisk.c
224
if (vd->vdisk_open != 0) {
usr/src/boot/common/vdisk.c
230
STAILQ_REMOVE(&vdisk_list, vd, vdisk_info, vdisk_link);
usr/src/boot/common/vdisk.c
231
(void) close(vd->vdisk_fd);
usr/src/boot/common/vdisk.c
232
printf("%s (%s) unmapped\n", argv[1], vd->vdisk_path);
usr/src/boot/common/vdisk.c
233
free(vd->vdisk_path);
usr/src/boot/common/vdisk.c
234
free(vd);
usr/src/boot/common/vdisk.c
251
vdisk_info_t *vd;
usr/src/boot/common/vdisk.c
257
vd = vdisk_get_info((struct devdesc *)dev);
usr/src/boot/common/vdisk.c
258
if (vd == NULL)
usr/src/boot/common/vdisk.c
267
offset = dev->d_offset * vd->vdisk_sectorsz;
usr/src/boot/common/vdisk.c
271
if (lseek(vd->vdisk_fd, blk << 9, SEEK_SET) == -1)
usr/src/boot/common/vdisk.c
277
rv = read(vd->vdisk_fd, buf, size);
usr/src/boot/common/vdisk.c
280
rv = write(vd->vdisk_fd, buf, size);
usr/src/boot/common/vdisk.c
297
vdisk_info_t *vd;
usr/src/boot/common/vdisk.c
305
vd = vdisk_get_info((struct devdesc *)dev);
usr/src/boot/common/vdisk.c
306
if (vd == NULL)
usr/src/boot/common/vdisk.c
310
rc = disk_open(dev, vd->vdisk_size, vd->vdisk_sectorsz);
usr/src/boot/common/vdisk.c
313
vd->vdisk_open++;
usr/src/boot/common/vdisk.c
321
vdisk_info_t *vd;
usr/src/boot/common/vdisk.c
326
vd = vdisk_get_info((struct devdesc *)dev);
usr/src/boot/common/vdisk.c
327
if (vd == NULL)
usr/src/boot/common/vdisk.c
330
vd->vdisk_open--;
usr/src/boot/common/vdisk.c
340
vdisk_info_t *vd;
usr/src/boot/common/vdisk.c
346
vd = vdisk_get_info((struct devdesc *)dev);
usr/src/boot/common/vdisk.c
347
if (vd == NULL)
usr/src/boot/common/vdisk.c
358
*(uint_t *)data = vd->vdisk_sectorsz;
usr/src/boot/common/vdisk.c
361
*(uint64_t *)data = vd->vdisk_size;
usr/src/boot/common/vdisk.c
373
vdisk_info_t *vd;
usr/src/boot/common/vdisk.c
383
STAILQ_FOREACH(vd, &vdisk_list, vdisk_link) {
usr/src/boot/common/vdisk.c
387
printf(" %s", vd->vdisk_path);
usr/src/boot/common/vdisk.c
392
" %s%d", vdisk_dev.dv_name, vd->vdisk_unit);
usr/src/boot/common/vdisk.c
394
vd->vdisk_size / vd->vdisk_sectorsz,
usr/src/boot/common/vdisk.c
395
vd->vdisk_sectorsz);
usr/src/boot/common/vdisk.c
400
vd_dev.dd.d_unit = vd->vdisk_unit;
usr/src/boot/common/vdisk.c
404
ret = disk_open(&vd_dev, vd->vdisk_size, vd->vdisk_sectorsz);
usr/src/boot/common/vdisk.c
75
vdisk_info_t *vd;
usr/src/boot/common/vdisk.c
77
STAILQ_FOREACH(vd, &vdisk_list, vdisk_link) {
usr/src/boot/common/vdisk.c
78
if (vd->vdisk_unit == dev->d_unit)
usr/src/boot/common/vdisk.c
79
return (vd);
usr/src/boot/common/vdisk.c
81
return (vd);
usr/src/boot/common/vdisk.c
89
vdisk_info_t *vd, *p;
usr/src/boot/common/vdisk.c
97
STAILQ_FOREACH(vd, &vdisk_list, vdisk_link) {
usr/src/boot/common/vdisk.c
98
if (strcmp(vd->vdisk_path, argv[1]) == 0) {
usr/src/boot/i386/isoboot/cd9660read.c
228
struct iso_primary_descriptor *vd;
usr/src/boot/i386/isoboot/cd9660read.c
240
vd = (struct iso_primary_descriptor *)blkbuf;
usr/src/boot/i386/isoboot/cd9660read.c
242
if (bcmp(vd->id, ISO_STANDARD_ID, sizeof (vd->id)) != 0)
usr/src/boot/i386/isoboot/cd9660read.c
244
if (isonum_711(vd->type) == ISO_VD_END)
usr/src/boot/i386/isoboot/cd9660read.c
246
if (isonum_711(vd->type) == ISO_VD_PRIMARY)
usr/src/boot/i386/isoboot/cd9660read.c
250
bcopy(vd->root_directory_record, &rec, sizeof (rec));
usr/src/boot/libsa/cd9660.c
288
struct iso_primary_descriptor *vd;
usr/src/boot/libsa/cd9660.c
299
vd = buf;
usr/src/boot/libsa/cd9660.c
311
if (bcmp(vd->id, ISO_STANDARD_ID, sizeof (vd->id)) != 0)
usr/src/boot/libsa/cd9660.c
313
if (isonum_711(vd->type) == ISO_VD_END)
usr/src/boot/libsa/cd9660.c
315
if (isonum_711(vd->type) == ISO_VD_PRIMARY)
usr/src/boot/libsa/cd9660.c
318
if (isonum_723(vd->logical_block_size) != ISO_DEFAULT_BLOCK_SIZE)
usr/src/boot/libsa/cd9660.c
321
bcopy(vd->root_directory_record, &rec, sizeof (rec));
usr/src/boot/libsa/zfs/zfs.c
689
vdev_t *vd;
usr/src/boot/libsa/zfs/zfs.c
699
STAILQ_FOREACH(vd, &spa->spa_root_vdev->v_children,
usr/src/boot/libsa/zfs/zfs.c
701
benv = vdev_read_bootenv(vd);
usr/src/boot/libsa/zfs/zfs.c
726
vdev_t *vd;
usr/src/boot/libsa/zfs/zfs.c
734
STAILQ_FOREACH(vd, &spa->spa_root_vdev->v_children, v_childlink) {
usr/src/boot/libsa/zfs/zfs.c
735
vdev_write_bootenv(vd, benv);
usr/src/boot/libsa/zfs/zfsimpl.c
1611
vdev_label_read(vdev_t *vd, int l, void *buf, uint64_t offset,
usr/src/boot/libsa/zfs/zfsimpl.c
1617
off = vdev_label_offset(vd->v_psize, l, offset);
usr/src/boot/libsa/zfs/zfsimpl.c
1627
return (vdev_read_phys(vd, &bp, buf, off, size));
usr/src/boot/libsa/zfs/zfsimpl.c
1644
vdev_label_write_validate(vdev_t *vd, int l, uint64_t offset)
usr/src/boot/libsa/zfs/zfsimpl.c
1652
off = vdev_label_offset(vd->v_psize, l, o_phys);
usr/src/boot/libsa/zfs/zfsimpl.c
1655
if (vdev_label_offset(vd->v_psize, l, offset) + VDEV_PAD_SIZE != off)
usr/src/boot/libsa/zfs/zfsimpl.c
1663
rc = vdev_label_read(vd, l, buf, o_phys, size);
usr/src/boot/libsa/zfs/zfsimpl.c
1669
vdev_label_write(vdev_t *vd, int l, vdev_boot_envblock_t *be, uint64_t offset)
usr/src/boot/libsa/zfs/zfsimpl.c
1677
if (vd->v_phys_write == NULL)
usr/src/boot/libsa/zfs/zfsimpl.c
1680
off = vdev_label_offset(vd->v_psize, l, offset);
usr/src/boot/libsa/zfs/zfsimpl.c
1682
rc = vdev_label_write_validate(vd, l, offset);
usr/src/boot/libsa/zfs/zfsimpl.c
1693
return (vdev_write_phys(vd, be, off, size));
usr/src/boot/libsa/zfs/zfsimpl.c
1932
vdev_label_read_config(vdev_t *vd, uint64_t txg)
usr/src/boot/libsa/zfs/zfsimpl.c
1946
if (vdev_label_read(vd, l, label,
usr/src/boot/libsa/zfs/zfsimpl.c
1976
vd->v_psize = asize;
usr/src/boot/libsa/zfs/zfsimpl.c
1992
vdev_uberblock_load(vdev_t *vd, uberblock_t *ub)
usr/src/boot/libsa/zfs/zfsimpl.c
1996
buf = malloc(VDEV_UBERBLOCK_SIZE(vd));
usr/src/boot/libsa/zfs/zfsimpl.c
2001
for (int n = 0; n < VDEV_UBERBLOCK_COUNT(vd); n++) {
usr/src/boot/libsa/zfs/zfsimpl.c
2002
if (vdev_label_read(vd, l, buf,
usr/src/boot/libsa/zfs/zfsimpl.c
2003
VDEV_UBERBLOCK_OFFSET(vd, n),
usr/src/boot/libsa/zfs/zfsimpl.c
2004
VDEV_UBERBLOCK_SIZE(vd)))
usr/src/boot/libsa/zfs/zfsimpl.c
266
rs_alloc(vdev_t *vd, uint64_t offset, uint64_t asize, uint64_t split_offset)
usr/src/boot/libsa/zfs/zfsimpl.c
271
rs->rs_vd = vd;
usr/src/boot/libsa/zfs/zfsimpl.c
494
vdev_indirect_mapping_duplicate_adjacent_entries(vdev_t *vd, uint64_t offset,
usr/src/boot/libsa/zfs/zfsimpl.c
498
vdev_indirect_mapping_t *vim = vd->v_mapping;
usr/src/boot/libsa/zfs/zfsimpl.c
548
vdev_indirect_gather_splits(uint64_t split_offset, vdev_t *vd, uint64_t offset,
usr/src/boot/libsa/zfs/zfsimpl.c
555
if (vd->v_read == vdev_indirect_read)
usr/src/boot/libsa/zfs/zfsimpl.c
558
if (vd->v_read == vdev_mirror_read)
usr/src/boot/libsa/zfs/zfsimpl.c
559
n = vd->v_nchildren;
usr/src/boot/libsa/zfs/zfsimpl.c
573
is->is_vdev = vd;
usr/src/boot/libsa/zfs/zfsimpl.c
581
if (vd->v_read == vdev_mirror_read) {
usr/src/boot/libsa/zfs/zfsimpl.c
585
STAILQ_FOREACH(kid, &vd->v_children, v_childlink) {
usr/src/boot/libsa/zfs/zfsimpl.c
589
is->is_child[0].ic_vdev = vd;
usr/src/boot/libsa/zfs/zfsimpl.c
596
vdev_indirect_remap(vdev_t *vd, uint64_t offset, uint64_t asize, void *arg)
usr/src/boot/libsa/zfs/zfsimpl.c
599
spa_t *spa = vd->v_spa;
usr/src/boot/libsa/zfs/zfsimpl.c
606
rs = rs_alloc(vd, offset, asize, 0);
usr/src/boot/sys/cddl/boot/zfs/zfsimpl.h
515
#define VDEV_UBERBLOCK_SHIFT(vd) \
usr/src/boot/sys/cddl/boot/zfs/zfsimpl.h
516
MIN(MAX((vd)->v_top->v_ashift, UBERBLOCK_SHIFT), MAX_UBERBLOCK_SHIFT)
usr/src/boot/sys/cddl/boot/zfs/zfsimpl.h
517
#define VDEV_UBERBLOCK_COUNT(vd) \
usr/src/boot/sys/cddl/boot/zfs/zfsimpl.h
518
(VDEV_UBERBLOCK_RING >> VDEV_UBERBLOCK_SHIFT(vd))
usr/src/boot/sys/cddl/boot/zfs/zfsimpl.h
519
#define VDEV_UBERBLOCK_OFFSET(vd, n) \
usr/src/boot/sys/cddl/boot/zfs/zfsimpl.h
520
offsetof(vdev_label_t, vl_uberblock[(n) << VDEV_UBERBLOCK_SHIFT(vd)])
usr/src/boot/sys/cddl/boot/zfs/zfsimpl.h
521
#define VDEV_UBERBLOCK_SIZE(vd) (1ULL << VDEV_UBERBLOCK_SHIFT(vd))
usr/src/boot/sys/cddl/boot/zfs/zfssubr.c
1557
vdev_raidz_read(vdev_t *vd, const blkptr_t *bp, void *data,
usr/src/boot/sys/cddl/boot/zfs/zfssubr.c
1560
vdev_t *tvd = vd->v_top;
usr/src/boot/sys/cddl/boot/zfs/zfssubr.c
1578
vd->v_nchildren, vd->v_nparity);
usr/src/boot/sys/cddl/boot/zfs/zfssubr.c
1588
cvd = vdev_child(vd, rc->rc_devidx);
usr/src/boot/sys/cddl/boot/zfs/zfssubr.c
1669
rv = raidz_checksum_verify(vd->v_spa, bp, data, bytes);
usr/src/boot/sys/cddl/boot/zfs/zfssubr.c
1715
rv = raidz_checksum_verify(vd->v_spa, bp, data, bytes);
usr/src/boot/sys/cddl/boot/zfs/zfssubr.c
1761
cvd = vdev_child(vd, rc->rc_devidx);
usr/src/boot/sys/cddl/boot/zfs/zfssubr.c
1790
(code = vdev_raidz_combrec(vd->v_spa, rm, bp, data, offset, bytes,
usr/src/cmd/bhyve/common/virtio.c
714
_vq_record(struct virtio_softc *vs, int i, struct vring_desc *vd,
usr/src/cmd/bhyve/common/virtio.c
725
len = atomic_load_32(&vd->len);
usr/src/cmd/bhyve/common/virtio.c
726
addr = atomic_load_64(&vd->addr);
usr/src/cmd/bhyve/common/virtio.c
729
if ((vd->flags & VRING_DESC_F_WRITE) == 0)
usr/src/cmd/cmd-inet/usr.bin/pppd/multilink.c
220
TDB_DATA kd, vd;
usr/src/cmd/cmd-inet/usr.bin/pppd/multilink.c
226
vd = tdb_fetch(pppdb, kd);
usr/src/cmd/cmd-inet/usr.bin/pppd/multilink.c
227
if (vd.dptr != NULL) {
usr/src/cmd/cmd-inet/usr.bin/pppd/multilink.c
228
ret = vd.dsize == key.dsize
usr/src/cmd/cmd-inet/usr.bin/pppd/multilink.c
229
&& memcmp(vd.dptr, key.dptr, vd.dsize) == 0;
usr/src/cmd/cmd-inet/usr.bin/pppd/multilink.c
230
free(vd.dptr);
usr/src/cmd/fm/modules/common/zfs-diagnosis/zfs_de.c
192
zfs_mark_vdev(uint64_t pool_guid, nvlist_t *vd, er_timeval_t *loaded)
usr/src/cmd/fm/modules/common/zfs-diagnosis/zfs_de.c
200
ret = nvlist_lookup_uint64(vd, ZPOOL_CONFIG_GUID, &vdev_guid);
usr/src/cmd/fm/modules/common/zfs-diagnosis/zfs_de.c
218
if (nvlist_lookup_nvlist_array(vd, ZPOOL_CONFIG_CHILDREN, &child,
usr/src/cmd/fm/modules/common/zfs-diagnosis/zfs_de.c
224
if (nvlist_lookup_nvlist_array(vd, ZPOOL_CONFIG_L2CACHE, &child,
usr/src/cmd/fm/modules/common/zfs-diagnosis/zfs_de.c
230
if (nvlist_lookup_nvlist_array(vd, ZPOOL_CONFIG_SPARES, &child,
usr/src/cmd/fm/modules/common/zfs-diagnosis/zfs_de.c
245
nvlist_t *config, *vd;
usr/src/cmd/fm/modules/common/zfs-diagnosis/zfs_de.c
279
ret = nvlist_lookup_nvlist(config, ZPOOL_CONFIG_VDEV_TREE, &vd);
usr/src/cmd/fm/modules/common/zfs-diagnosis/zfs_de.c
282
zfs_mark_vdev(pool_guid, vd, &loaded);
usr/src/cmd/fm/schemes/zfs/scheme.c
203
nvlist_t *vd;
usr/src/cmd/fm/schemes/zfs/scheme.c
220
vd = find_vdev(cb.cb_pool, vdev_guid);
usr/src/cmd/fm/schemes/zfs/scheme.c
221
if (vd == NULL) {
usr/src/cmd/fm/schemes/zfs/scheme.c
227
(void) nvlist_lookup_uint64_array(vd, ZPOOL_CONFIG_VDEV_STATS,
usr/src/cmd/mdb/common/modules/zfs/zfs.c
1599
metaslab_stats(mdb_vdev_t *vd, int spa_flags)
usr/src/cmd/mdb/common/modules/zfs/zfs.c
1605
uintptr_t *vdev_ms = mdb_alloc(vd->vdev_ms_count * sizeof (vdev_ms),
usr/src/cmd/mdb/common/modules/zfs/zfs.c
1607
if (mdb_vread(vdev_ms, vd->vdev_ms_count * sizeof (uintptr_t),
usr/src/cmd/mdb/common/modules/zfs/zfs.c
1608
vd->vdev_ms) == -1) {
usr/src/cmd/mdb/common/modules/zfs/zfs.c
1609
mdb_warn("failed to read vdev_ms at %p\n", vd->vdev_ms);
usr/src/cmd/mdb/common/modules/zfs/zfs.c
1613
for (int m = 0; m < vd->vdev_ms_count; m++) {
usr/src/cmd/mdb/common/modules/zfs/zfs.c
1672
metaslab_group_stats(mdb_vdev_t *vd, int spa_flags)
usr/src/cmd/mdb/common/modules/zfs/zfs.c
1676
vd->vdev_mg, 0) == -1) {
usr/src/cmd/mdb/common/modules/zfs/zfs.c
1677
mdb_warn("failed to read vdev_mg at %p\n", vd->vdev_mg);
usr/src/cmd/mdb/common/modules/zfs/zfs.c
1685
mdb_printf("%0?p %6s\n", vd->vdev_mg, "-");
usr/src/cmd/mdb/common/modules/zfs/zfs.c
1687
mdb_printf("%0?p %6llu%%", vd->vdev_mg, mg.mg_fragmentation);
usr/src/cmd/mdb/common/modules/zfs/zfs.c
1690
uintptr_t *vdev_ms = mdb_alloc(vd->vdev_ms_count * sizeof (vdev_ms),
usr/src/cmd/mdb/common/modules/zfs/zfs.c
1692
if (mdb_vread(vdev_ms, vd->vdev_ms_count * sizeof (uintptr_t),
usr/src/cmd/mdb/common/modules/zfs/zfs.c
1693
vd->vdev_ms) == -1) {
usr/src/cmd/mdb/common/modules/zfs/zfs.c
1694
mdb_warn("failed to read vdev_ms at %p\n", vd->vdev_ms);
usr/src/cmd/mdb/common/modules/zfs/zfs.c
1700
for (int m = 0; m < vd->vdev_ms_count; m++) {
usr/src/cmd/mdb/common/modules/zfs/zfs.c
1743
mdb_vdev_t vd;
usr/src/cmd/mdb/common/modules/zfs/zfs.c
1744
if (mdb_ctf_vread(&vd, "vdev_t", "mdb_vdev_t",
usr/src/cmd/mdb/common/modules/zfs/zfs.c
1752
if (vd.vdev_path != 0) {
usr/src/cmd/mdb/common/modules/zfs/zfs.c
1754
(uintptr_t)vd.vdev_path) == -1) {
usr/src/cmd/mdb/common/modules/zfs/zfs.c
1756
vd.vdev_path);
usr/src/cmd/mdb/common/modules/zfs/zfs.c
1759
} else if (vd.vdev_ops != 0) {
usr/src/cmd/mdb/common/modules/zfs/zfs.c
1762
(uintptr_t)vd.vdev_ops) == -1) {
usr/src/cmd/mdb/common/modules/zfs/zfs.c
1764
vd.vdev_ops);
usr/src/cmd/mdb/common/modules/zfs/zfs.c
1781
switch (vd.vdev_state) {
usr/src/cmd/mdb/common/modules/zfs/zfs.c
1808
switch (vd.vdev_stat.vs_aux) {
usr/src/cmd/mdb/common/modules/zfs/zfs.c
1878
vd.vdev_stat.vs_ops[i],
usr/src/cmd/mdb/common/modules/zfs/zfs.c
1884
vd.vdev_stat.vs_bytes[i],
usr/src/cmd/mdb/common/modules/zfs/zfs.c
1890
vd.vdev_stat.vs_read_errors);
usr/src/cmd/mdb/common/modules/zfs/zfs.c
1892
vd.vdev_stat.vs_write_errors);
usr/src/cmd/mdb/common/modules/zfs/zfs.c
1894
vd.vdev_stat.vs_checksum_errors);
usr/src/cmd/mdb/common/modules/zfs/zfs.c
1900
vd.vdev_mg != 0) {
usr/src/cmd/mdb/common/modules/zfs/zfs.c
1901
metaslab_group_stats(&vd, spa_flags);
usr/src/cmd/mdb/common/modules/zfs/zfs.c
1903
if ((spa_flags & SPA_FLAG_METASLABS) && vd.vdev_ms != 0) {
usr/src/cmd/mdb/common/modules/zfs/zfs.c
1904
metaslab_stats(&vd, spa_flags);
usr/src/cmd/mdb/common/modules/zfs/zfs.c
1908
uint64_t children = vd.vdev_children;
usr/src/cmd/mdb/common/modules/zfs/zfs.c
1914
if (mdb_vread(child, children * sizeof (void *), vd.vdev_child) == -1) {
usr/src/cmd/mdb/common/modules/zfs/zfs.c
1915
mdb_warn("failed to read vdev children at %p", vd.vdev_child);
usr/src/cmd/vt/vtdaemon.c
886
vt_get_active_disp_info(struct vt_dispinfo *vd)
usr/src/cmd/vt/vtdaemon.c
905
if (ioctl(fd, VT_GETDISPINFO, vd) != 0) {
usr/src/cmd/vt/vtdaemon.c
925
struct vt_dispinfo vd;
usr/src/cmd/vt/vtdaemon.c
927
if (vt_get_active_disp_info(&vd) &&
usr/src/cmd/vt/vtdaemon.c
928
vd.v_pid == x_pid)
usr/src/cmd/vt/vtdaemon.c
942
struct vt_dispinfo vd;
usr/src/cmd/vt/vtdaemon.c
944
if (!vt_get_active_disp_info(&vd) ||
usr/src/cmd/vt/vtdaemon.c
945
vd.v_pid != x_pid)
usr/src/cmd/vt/vtdaemon.c
948
*logged_in = vd.v_login;
usr/src/cmd/vt/vtdaemon.c
949
*display_num = vd.v_dispnum;
usr/src/cmd/zdb/zdb.c
1038
print_vdev_indirect(vdev_t *vd)
usr/src/cmd/zdb/zdb.c
1040
vdev_indirect_config_t *vic = &vd->vdev_indirect_config;
usr/src/cmd/zdb/zdb.c
1041
vdev_indirect_mapping_t *vim = vd->vdev_indirect_mapping;
usr/src/cmd/zdb/zdb.c
1042
vdev_indirect_births_t *vib = vd->vdev_indirect_births;
usr/src/cmd/zdb/zdb.c
1086
(longlong_t)vd->vdev_id,
usr/src/cmd/zdb/zdb.c
1096
uint64_t obsolete_sm_object = vdev_obsolete_sm_object(vd);
usr/src/cmd/zdb/zdb.c
1098
objset_t *mos = vd->vdev_spa->spa_meta_objset;
usr/src/cmd/zdb/zdb.c
1101
ASSERT(vd->vdev_obsolete_sm != NULL);
usr/src/cmd/zdb/zdb.c
1102
ASSERT3U(space_map_object(vd->vdev_obsolete_sm), ==,
usr/src/cmd/zdb/zdb.c
1104
dump_spacemap(mos, vd->vdev_obsolete_sm);
usr/src/cmd/zdb/zdb.c
1112
vdev_t *vd, *rvd = spa->spa_root_vdev;
usr/src/cmd/zdb/zdb.c
1124
vd = rvd->vdev_child[c];
usr/src/cmd/zdb/zdb.c
1125
print_vdev_metaslab_header(vd);
usr/src/cmd/zdb/zdb.c
1128
if (zopt_object[m] < vd->vdev_ms_count)
usr/src/cmd/zdb/zdb.c
1130
vd->vdev_ms[zopt_object[m]]);
usr/src/cmd/zdb/zdb.c
1142
vd = rvd->vdev_child[c];
usr/src/cmd/zdb/zdb.c
1143
print_vdev_metaslab_header(vd);
usr/src/cmd/zdb/zdb.c
1145
print_vdev_indirect(vd);
usr/src/cmd/zdb/zdb.c
1147
for (m = 0; m < vd->vdev_ms_count; m++)
usr/src/cmd/zdb/zdb.c
1148
dump_metaslab(vd->vdev_ms[m]);
usr/src/cmd/zdb/zdb.c
1317
dump_dtl(vdev_t *vd, int indent)
usr/src/cmd/zdb/zdb.c
1319
spa_t *spa = vd->vdev_spa;
usr/src/cmd/zdb/zdb.c
1326
required = vdev_dtl_required(vd);
usr/src/cmd/zdb/zdb.c
1333
vd->vdev_path ? vd->vdev_path :
usr/src/cmd/zdb/zdb.c
1334
vd->vdev_parent ? vd->vdev_ops->vdev_op_type : spa_name(spa),
usr/src/cmd/zdb/zdb.c
1338
range_tree_t *rt = vd->vdev_dtl[t];
usr/src/cmd/zdb/zdb.c
1344
if (dump_opt['d'] > 5 && vd->vdev_children == 0)
usr/src/cmd/zdb/zdb.c
1345
dump_spacemap(spa->spa_meta_objset, vd->vdev_dtl_sm);
usr/src/cmd/zdb/zdb.c
1348
for (unsigned c = 0; c < vd->vdev_children; c++)
usr/src/cmd/zdb/zdb.c
1349
dump_dtl(vd->vdev_child[c], indent + 4);
usr/src/cmd/zdb/zdb.c
3165
vdev_t vd;
usr/src/cmd/zdb/zdb.c
3168
vd.vdev_ashift = ashift;
usr/src/cmd/zdb/zdb.c
3169
vd.vdev_top = &vd;
usr/src/cmd/zdb/zdb.c
3171
for (int i = 0; i < VDEV_UBERBLOCK_COUNT(&vd); i++) {
usr/src/cmd/zdb/zdb.c
3172
uint64_t uoff = VDEV_UBERBLOCK_OFFSET(&vd, i);
usr/src/cmd/zdb/zdb.c
3271
vdev_t vd;
usr/src/cmd/zdb/zdb.c
3316
vd.vdev_ashift = ashift;
usr/src/cmd/zdb/zdb.c
3317
vd.vdev_top = &vd;
usr/src/cmd/zdb/zdb.c
3319
for (int i = 0; i < VDEV_UBERBLOCK_COUNT(&vd); i++) {
usr/src/cmd/zdb/zdb.c
3320
uint64_t uoff = VDEV_UBERBLOCK_OFFSET(&vd, i);
usr/src/cmd/zdb/zdb.c
3465
vdev_t *vd = vdev_lookup_top(spa, vdev);
usr/src/cmd/zdb/zdb.c
3466
uint64_t ms_shift = vd->vdev_ms_shift;
usr/src/cmd/zdb/zdb.c
3723
vdev_t *vd = arg;
usr/src/cmd/zdb/zdb.c
3726
(u_longlong_t)vd->vdev_id, (u_longlong_t)start, (u_longlong_t)size);
usr/src/cmd/zdb/zdb.c
3792
vdev_t *vd = vdev_lookup_top(spa, sme->sme_vdev);
usr/src/cmd/zdb/zdb.c
3793
metaslab_t *ms = vd->vdev_ms[offset >> vd->vdev_ms_shift];
usr/src/cmd/zdb/zdb.c
3799
vdev_indirect_mapping_t *vim = vd->vdev_indirect_mapping;
usr/src/cmd/zdb/zdb.c
3855
claim_segment_impl_cb(uint64_t inner_offset, vdev_t *vd, uint64_t offset,
usr/src/cmd/zdb/zdb.c
3864
ASSERT(vdev_is_concrete(vd));
usr/src/cmd/zdb/zdb.c
3866
VERIFY0(metaslab_claim_impl(vd, offset, size,
usr/src/cmd/zdb/zdb.c
3867
spa_min_claim_txg(vd->vdev_spa)));
usr/src/cmd/zdb/zdb.c
3873
vdev_t *vd = arg;
usr/src/cmd/zdb/zdb.c
3875
vdev_indirect_ops.vdev_op_remap(vd, offset, size,
usr/src/cmd/zdb/zdb.c
3898
vdev_t *vd = vdev_lookup_top(spa, svr->svr_vdev_id);
usr/src/cmd/zdb/zdb.c
3899
vdev_indirect_mapping_t *vim = vd->vdev_indirect_mapping;
usr/src/cmd/zdb/zdb.c
3904
for (uint64_t msi = 0; msi < vd->vdev_ms_count; msi++) {
usr/src/cmd/zdb/zdb.c
3905
metaslab_t *msp = vd->vdev_ms[msi];
usr/src/cmd/zdb/zdb.c
3926
vd->vdev_asize - vdev_indirect_mapping_max_offset(vim));
usr/src/cmd/zdb/zdb.c
3929
range_tree_vacate(svr->svr_allocd_segs, claim_segment_cb, vd);
usr/src/cmd/zdb/zdb.c
3940
vdev_t *vd;
usr/src/cmd/zdb/zdb.c
3947
vd = vdev_lookup_top(zcb->zcb_spa, DVA_GET_VDEV(dva));
usr/src/cmd/zdb/zdb.c
3948
ASSERT3P(vd, !=, NULL);
usr/src/cmd/zdb/zdb.c
3951
ASSERT(vd->vdev_indirect_config.vic_mapping_object != 0);
usr/src/cmd/zdb/zdb.c
3952
ASSERT3P(zcb->zcb_vd_obsolete_counts[vd->vdev_id], !=, NULL);
usr/src/cmd/zdb/zdb.c
3955
vd->vdev_indirect_mapping,
usr/src/cmd/zdb/zdb.c
3957
zcb->zcb_vd_obsolete_counts[vd->vdev_id]);
usr/src/cmd/zdb/zdb.c
3963
zdb_load_obsolete_counts(vdev_t *vd)
usr/src/cmd/zdb/zdb.c
3965
vdev_indirect_mapping_t *vim = vd->vdev_indirect_mapping;
usr/src/cmd/zdb/zdb.c
3966
spa_t *spa = vd->vdev_spa;
usr/src/cmd/zdb/zdb.c
3971
EQUIV(vdev_obsolete_sm_object(vd) != 0, vd->vdev_obsolete_sm != NULL);
usr/src/cmd/zdb/zdb.c
3973
if (vd->vdev_obsolete_sm != NULL) {
usr/src/cmd/zdb/zdb.c
3975
vd->vdev_obsolete_sm);
usr/src/cmd/zdb/zdb.c
3977
if (scip->scip_vdev == vd->vdev_id &&
usr/src/cmd/zdb/zdb.c
3981
scip->scip_prev_obsolete_sm_object, 0, vd->vdev_asize, 0));
usr/src/cmd/zdb/zdb.c
3998
vdev_t *vd = cseea->cseea_vd;
usr/src/cmd/zdb/zdb.c
3999
metaslab_t *ms = vd->vdev_ms[sme->sme_offset >> vd->vdev_ms_shift];
usr/src/cmd/zdb/zdb.c
4036
zdb_leak_init_vdev_exclude_checkpoint(vdev_t *vd, zdb_cb_t *zcb)
usr/src/cmd/zdb/zdb.c
4038
spa_t *spa = vd->vdev_spa;
usr/src/cmd/zdb/zdb.c
4046
if (vd->vdev_top_zap == 0)
usr/src/cmd/zdb/zdb.c
4061
if (zap_contains(spa_meta_objset(spa), vd->vdev_top_zap,
usr/src/cmd/zdb/zdb.c
4065
VERIFY0(zap_lookup(spa_meta_objset(spa), vd->vdev_top_zap,
usr/src/cmd/zdb/zdb.c
4070
cseea.cseea_vd = vd;
usr/src/cmd/zdb/zdb.c
4074
checkpoint_sm_obj, 0, vd->vdev_asize, vd->vdev_ashift));
usr/src/cmd/zdb/zdb.c
4104
vdev_t *vd = vdev_lookup_top(spa, vdev_id);
usr/src/cmd/zdb/zdb.c
4105
if (!vdev_is_concrete(vd))
usr/src/cmd/zdb/zdb.c
4108
metaslab_t *ms = vd->vdev_ms[offset >> vd->vdev_ms_shift];
usr/src/cmd/zdb/zdb.c
4141
vdev_t *vd = vdev_lookup_top(spa, vdev_id);
usr/src/cmd/zdb/zdb.c
4144
if (!vdev_is_concrete(vd))
usr/src/cmd/zdb/zdb.c
4147
metaslab_t *ms = vd->vdev_ms[offset >> vd->vdev_ms_shift];
usr/src/cmd/zdb/zdb.c
4174
vdev_t *vd = rvd->vdev_child[i];
usr/src/cmd/zdb/zdb.c
4176
ASSERT3U(i, ==, vd->vdev_id);
usr/src/cmd/zdb/zdb.c
4178
if (vd->vdev_ops == &vdev_indirect_ops)
usr/src/cmd/zdb/zdb.c
4181
for (uint64_t m = 0; m < vd->vdev_ms_count; m++) {
usr/src/cmd/zdb/zdb.c
4182
metaslab_t *msp = vd->vdev_ms[m];
usr/src/cmd/zdb/zdb.c
4187
(longlong_t)vd->vdev_id,
usr/src/cmd/zdb/zdb.c
4189
(longlong_t)vd->vdev_ms_count);
usr/src/cmd/zdb/zdb.c
4219
load_indirect_ms_allocatable_tree(vdev_t *vd, metaslab_t *msp,
usr/src/cmd/zdb/zdb.c
4222
vdev_indirect_mapping_t *vim = vd->vdev_indirect_mapping;
usr/src/cmd/zdb/zdb.c
4264
vdev_t *vd = rvd->vdev_child[c];
usr/src/cmd/zdb/zdb.c
4266
ASSERT3U(c, ==, vd->vdev_id);
usr/src/cmd/zdb/zdb.c
4268
if (vd->vdev_ops != &vdev_indirect_ops)
usr/src/cmd/zdb/zdb.c
4276
zcb->zcb_vd_obsolete_counts[c] = zdb_load_obsolete_counts(vd);
usr/src/cmd/zdb/zdb.c
4283
VERIFY0(vdev_metaslab_init(vd, 0));
usr/src/cmd/zdb/zdb.c
4286
vdev_indirect_mapping_t *vim = vd->vdev_indirect_mapping;
usr/src/cmd/zdb/zdb.c
4289
for (uint64_t m = 0; m < vd->vdev_ms_count; m++) {
usr/src/cmd/zdb/zdb.c
4294
(longlong_t)vd->vdev_id,
usr/src/cmd/zdb/zdb.c
4295
(longlong_t)vd->vdev_ms[m]->ms_id,
usr/src/cmd/zdb/zdb.c
4296
(longlong_t)vd->vdev_ms_count);
usr/src/cmd/zdb/zdb.c
4298
load_indirect_ms_allocatable_tree(vd, vd->vdev_ms[m],
usr/src/cmd/zdb/zdb.c
4375
zdb_check_for_obsolete_leaks(vdev_t *vd, zdb_cb_t *zcb)
usr/src/cmd/zdb/zdb.c
4378
vdev_indirect_mapping_t *vim = vd->vdev_indirect_mapping;
usr/src/cmd/zdb/zdb.c
4388
metaslab_t *msp = vd->vdev_ms[offset >> vd->vdev_ms_shift];
usr/src/cmd/zdb/zdb.c
4396
inner_offset += 1 << vd->vdev_ashift) {
usr/src/cmd/zdb/zdb.c
4398
offset + inner_offset, 1 << vd->vdev_ashift)) {
usr/src/cmd/zdb/zdb.c
4399
obsolete_bytes += 1 << vd->vdev_ashift;
usr/src/cmd/zdb/zdb.c
4404
zcb->zcb_vd_obsolete_counts[vd->vdev_id][i];
usr/src/cmd/zdb/zdb.c
4406
zcb->zcb_vd_obsolete_counts[vd->vdev_id][i]);
usr/src/cmd/zdb/zdb.c
4408
(vdev_obsolete_counts_are_precise(vd) ||
usr/src/cmd/zdb/zdb.c
4412
(u_longlong_t)vd->vdev_id,
usr/src/cmd/zdb/zdb.c
4420
if (!vdev_obsolete_counts_are_precise(vd) && total_leaked > 0) {
usr/src/cmd/zdb/zdb.c
4427
(u_longlong_t)vd->vdev_id, pct_leaked,
usr/src/cmd/zdb/zdb.c
4432
(u_longlong_t)vd->vdev_id,
usr/src/cmd/zdb/zdb.c
4438
zcb->zcb_vd_obsolete_counts[vd->vdev_id]);
usr/src/cmd/zdb/zdb.c
4439
zcb->zcb_vd_obsolete_counts[vd->vdev_id] = NULL;
usr/src/cmd/zdb/zdb.c
4454
vdev_t *vd = rvd->vdev_child[c];
usr/src/cmd/zdb/zdb.c
4456
metaslab_group_t *mg = vd->vdev_mg;
usr/src/cmd/zdb/zdb.c
4460
leaks |= zdb_check_for_obsolete_leaks(vd, zcb);
usr/src/cmd/zdb/zdb.c
4463
for (uint64_t m = 0; m < vd->vdev_ms_count; m++) {
usr/src/cmd/zdb/zdb.c
4464
metaslab_t *msp = vd->vdev_ms[m];
usr/src/cmd/zdb/zdb.c
4480
if (vd->vdev_ops == &vdev_indirect_ops) {
usr/src/cmd/zdb/zdb.c
4485
zdb_leak, vd);
usr/src/cmd/zdb/zdb.c
4716
vdev_t *vd = spa->spa_root_vdev->vdev_child[v];
usr/src/cmd/zdb/zdb.c
4717
vdev_indirect_mapping_t *vim = vd->vdev_indirect_mapping;
usr/src/cmd/zdb/zdb.c
4729
(longlong_t)vd->vdev_id,
usr/src/cmd/zdb/zdb.c
4956
vdev_t *vd = spa->spa_root_vdev->vdev_child[scip->scip_vdev];
usr/src/cmd/zdb/zdb.c
4958
ASSERT3P(vd->vdev_ops, ==, &vdev_indirect_ops);
usr/src/cmd/zdb/zdb.c
4970
0, vd->vdev_asize, 0));
usr/src/cmd/zdb/zdb.c
4980
vdev_t *vd = spa->spa_root_vdev->vdev_child[i];
usr/src/cmd/zdb/zdb.c
4981
vdev_indirect_config_t *vic = &vd->vdev_indirect_config;
usr/src/cmd/zdb/zdb.c
4984
ASSERT(vd->vdev_ops == &vdev_indirect_ops ||
usr/src/cmd/zdb/zdb.c
4985
vd->vdev_removing);
usr/src/cmd/zdb/zdb.c
4988
if (vd->vdev_indirect_mapping->vim_havecounts) {
usr/src/cmd/zdb/zdb.c
4992
if (vdev_obsolete_counts_are_precise(vd)) {
usr/src/cmd/zdb/zdb.c
4996
if (vdev_obsolete_sm_object(vd) != 0) {
usr/src/cmd/zdb/zdb.c
5149
vdev_t *vd = vcsec->vcsec_vd;
usr/src/cmd/zdb/zdb.c
5150
metaslab_t *ms = vd->vdev_ms[sme->sme_offset >> vd->vdev_ms_shift];
usr/src/cmd/zdb/zdb.c
5158
(longlong_t)vd->vdev_id,
usr/src/cmd/zdb/zdb.c
5388
vdev_t *vd = rvd->vdev_child[i];
usr/src/cmd/zdb/zdb.c
5393
if (vd->vdev_top_zap == 0)
usr/src/cmd/zdb/zdb.c
5396
if (zap_contains(spa_meta_objset(spa), vd->vdev_top_zap,
usr/src/cmd/zdb/zdb.c
5400
VERIFY0(zap_lookup(spa_meta_objset(spa), vd->vdev_top_zap,
usr/src/cmd/zdb/zdb.c
5405
checkpoint_sm_obj, 0, vd->vdev_asize, vd->vdev_ashift));
usr/src/cmd/zdb/zdb.c
5473
mos_leak_vdev_top_zap(vdev_t *vd)
usr/src/cmd/zdb/zdb.c
5477
int error = zap_lookup(spa_meta_objset(vd->vdev_spa),
usr/src/cmd/zdb/zdb.c
5478
vd->vdev_top_zap, VDEV_TOP_ZAP_MS_UNFLUSHED_PHYS_TXGS,
usr/src/cmd/zdb/zdb.c
5488
mos_leak_vdev(vdev_t *vd)
usr/src/cmd/zdb/zdb.c
5490
mos_obj_refd(vd->vdev_dtl_object);
usr/src/cmd/zdb/zdb.c
5491
mos_obj_refd(vd->vdev_ms_array);
usr/src/cmd/zdb/zdb.c
5492
mos_obj_refd(vd->vdev_indirect_config.vic_births_object);
usr/src/cmd/zdb/zdb.c
5493
mos_obj_refd(vd->vdev_indirect_config.vic_mapping_object);
usr/src/cmd/zdb/zdb.c
5494
mos_obj_refd(vd->vdev_leaf_zap);
usr/src/cmd/zdb/zdb.c
5495
if (vd->vdev_checkpoint_sm != NULL)
usr/src/cmd/zdb/zdb.c
5496
mos_obj_refd(vd->vdev_checkpoint_sm->sm_object);
usr/src/cmd/zdb/zdb.c
5497
if (vd->vdev_indirect_mapping != NULL) {
usr/src/cmd/zdb/zdb.c
5498
mos_obj_refd(vd->vdev_indirect_mapping->
usr/src/cmd/zdb/zdb.c
5501
if (vd->vdev_obsolete_sm != NULL)
usr/src/cmd/zdb/zdb.c
5502
mos_obj_refd(vd->vdev_obsolete_sm->sm_object);
usr/src/cmd/zdb/zdb.c
5504
for (uint64_t m = 0; m < vd->vdev_ms_count; m++) {
usr/src/cmd/zdb/zdb.c
5505
metaslab_t *ms = vd->vdev_ms[m];
usr/src/cmd/zdb/zdb.c
5509
if (vd->vdev_top_zap != 0) {
usr/src/cmd/zdb/zdb.c
5510
mos_obj_refd(vd->vdev_top_zap);
usr/src/cmd/zdb/zdb.c
5511
mos_leak_vdev_top_zap(vd);
usr/src/cmd/zdb/zdb.c
5514
for (uint64_t c = 0; c < vd->vdev_children; c++) {
usr/src/cmd/zdb/zdb.c
5515
mos_leak_vdev(vd->vdev_child[c]);
usr/src/cmd/zdb/zdb.c
5685
vdev_t *vd = vdev_lookup_top(spa, vdev_id);
usr/src/cmd/zdb/zdb.c
5686
if (!vdev_is_concrete(vd))
usr/src/cmd/zdb/zdb.c
5689
metaslab_t *ms = vd->vdev_ms[offset >> vd->vdev_ms_shift];
usr/src/cmd/zdb/zdb.c
6014
vdev_t *vd;
usr/src/cmd/zdb/zdb.c
6075
vd = zdb_vdev_lookup(spa->spa_root_vdev, vdev);
usr/src/cmd/zdb/zdb.c
6076
if (vd == NULL) {
usr/src/cmd/zdb/zdb.c
6081
if (vd->vdev_path)
usr/src/cmd/zdb/zdb.c
6083
vd->vdev_path);
usr/src/cmd/zdb/zdb.c
6086
vd->vdev_ops->vdev_op_type);
usr/src/cmd/zdb/zdb.c
6097
DVA_SET_VDEV(&dva[0], vd->vdev_id);
usr/src/cmd/zdb/zdb.c
6100
DVA_SET_ASIZE(&dva[0], vdev_psize_to_asize(vd, psize));
usr/src/cmd/zdb/zdb.c
6116
if (vd == vd->vdev_top) {
usr/src/cmd/zdb/zdb.c
6127
zio_nowait(zio_vdev_child_io(zio, bp, vd, offset, pabd,
usr/src/cmd/zdb/zdb.c
671
get_dtl_refcount(vdev_t *vd)
usr/src/cmd/zdb/zdb.c
675
if (vd->vdev_ops->vdev_op_leaf) {
usr/src/cmd/zdb/zdb.c
676
space_map_t *sm = vd->vdev_dtl_sm;
usr/src/cmd/zdb/zdb.c
684
for (unsigned c = 0; c < vd->vdev_children; c++)
usr/src/cmd/zdb/zdb.c
685
refcount += get_dtl_refcount(vd->vdev_child[c]);
usr/src/cmd/zdb/zdb.c
690
get_metaslab_refcount(vdev_t *vd)
usr/src/cmd/zdb/zdb.c
694
if (vd->vdev_top == vd) {
usr/src/cmd/zdb/zdb.c
695
for (uint64_t m = 0; m < vd->vdev_ms_count; m++) {
usr/src/cmd/zdb/zdb.c
696
space_map_t *sm = vd->vdev_ms[m]->ms_sm;
usr/src/cmd/zdb/zdb.c
703
for (unsigned c = 0; c < vd->vdev_children; c++)
usr/src/cmd/zdb/zdb.c
704
refcount += get_metaslab_refcount(vd->vdev_child[c]);
usr/src/cmd/zdb/zdb.c
710
get_obsolete_refcount(vdev_t *vd)
usr/src/cmd/zdb/zdb.c
714
uint64_t obsolete_sm_obj = vdev_obsolete_sm_object(vd);
usr/src/cmd/zdb/zdb.c
715
if (vd->vdev_top == vd && obsolete_sm_obj != 0) {
usr/src/cmd/zdb/zdb.c
717
VERIFY0(dmu_object_info(vd->vdev_spa->spa_meta_objset,
usr/src/cmd/zdb/zdb.c
723
ASSERT3P(vd->vdev_obsolete_sm, ==, NULL);
usr/src/cmd/zdb/zdb.c
726
for (unsigned c = 0; c < vd->vdev_children; c++) {
usr/src/cmd/zdb/zdb.c
727
refcount += get_obsolete_refcount(vd->vdev_child[c]);
usr/src/cmd/zdb/zdb.c
749
get_checkpoint_refcount(vdev_t *vd)
usr/src/cmd/zdb/zdb.c
753
if (vd->vdev_top == vd && vd->vdev_top_zap != 0 &&
usr/src/cmd/zdb/zdb.c
754
zap_contains(spa_meta_objset(vd->vdev_spa),
usr/src/cmd/zdb/zdb.c
755
vd->vdev_top_zap, VDEV_TOP_ZAP_POOL_CHECKPOINT_SM) == 0)
usr/src/cmd/zdb/zdb.c
758
for (uint64_t c = 0; c < vd->vdev_children; c++)
usr/src/cmd/zdb/zdb.c
759
refcount += get_checkpoint_refcount(vd->vdev_child[c]);
usr/src/cmd/zdb/zdb.c
913
vdev_t *vd = msp->ms_group->mg_vd;
usr/src/cmd/zdb/zdb.c
914
spa_t *spa = vd->vdev_spa;
usr/src/cmd/zdb/zdb.c
947
ASSERT(msp->ms_size == (1ULL << vd->vdev_ms_shift));
usr/src/cmd/zdb/zdb.c
957
print_vdev_metaslab_header(vdev_t *vd)
usr/src/cmd/zdb/zdb.c
959
vdev_alloc_bias_t alloc_bias = vd->vdev_alloc_bias;
usr/src/cmd/zdb/zdb.c
962
if (alloc_bias == VDEV_BIAS_LOG || vd->vdev_islog) {
usr/src/cmd/zdb/zdb.c
971
if (vd->vdev_top_zap != 0) {
usr/src/cmd/zdb/zdb.c
972
int error = zap_lookup(spa_meta_objset(vd->vdev_spa),
usr/src/cmd/zdb/zdb.c
973
vd->vdev_top_zap, VDEV_TOP_ZAP_MS_UNFLUSHED_PHYS_TXGS,
usr/src/cmd/zdb/zdb.c
981
(u_longlong_t)vd->vdev_id, bias_str);
usr/src/cmd/zdb/zdb.c
989
"metaslabs", (u_longlong_t)vd->vdev_ms_count,
usr/src/cmd/ztest/ztest.c
2820
vdev_lookup_by_path(vdev_t *vd, const char *path)
usr/src/cmd/ztest/ztest.c
2824
if (vd->vdev_path != NULL && strcmp(path, vd->vdev_path) == 0)
usr/src/cmd/ztest/ztest.c
2825
return (vd);
usr/src/cmd/ztest/ztest.c
2827
for (int c = 0; c < vd->vdev_children; c++)
usr/src/cmd/ztest/ztest.c
2828
if ((mvd = vdev_lookup_by_path(vd->vdev_child[c], path)) !=
usr/src/cmd/ztest/ztest.c
3422
vdev_t *vd;
usr/src/cmd/ztest/ztest.c
3437
vd = vdev_lookup_top(spa, ztest_random_vdev_top(spa, B_FALSE));
usr/src/cmd/ztest/ztest.c
3438
guid = vd->vdev_guid;
usr/src/cmd/ztest/ztest.c
3474
grow_vdev(vdev_t *vd, void *arg)
usr/src/cmd/ztest/ztest.c
3476
spa_t *spa = vd->vdev_spa;
usr/src/cmd/ztest/ztest.c
3482
ASSERT(vd->vdev_ops->vdev_op_leaf);
usr/src/cmd/ztest/ztest.c
3484
if ((fd = open(vd->vdev_path, O_RDWR)) == -1)
usr/src/cmd/ztest/ztest.c
3485
return (vd);
usr/src/cmd/ztest/ztest.c
3492
vd->vdev_path, (ulong_t)fsize, (ulong_t)*newsize);
usr/src/cmd/ztest/ztest.c
3503
online_vdev(vdev_t *vd, void *arg)
usr/src/cmd/ztest/ztest.c
3505
spa_t *spa = vd->vdev_spa;
usr/src/cmd/ztest/ztest.c
3506
vdev_t *tvd = vd->vdev_top;
usr/src/cmd/ztest/ztest.c
3507
uint64_t guid = vd->vdev_guid;
usr/src/cmd/ztest/ztest.c
3513
ASSERT(vd->vdev_ops->vdev_op_leaf);
usr/src/cmd/ztest/ztest.c
3530
return (vd);
usr/src/cmd/ztest/ztest.c
3550
return (vd);
usr/src/cmd/ztest/ztest.c
3563
vdev_walk_tree(vdev_t *vd, vdev_t *(*func)(vdev_t *, void *), void *arg)
usr/src/cmd/ztest/ztest.c
3565
if (vd->vdev_ops->vdev_op_leaf) {
usr/src/cmd/ztest/ztest.c
3567
return (vd);
usr/src/cmd/ztest/ztest.c
3569
return (func(vd, arg));
usr/src/cmd/ztest/ztest.c
3572
for (uint_t c = 0; c < vd->vdev_children; c++) {
usr/src/cmd/ztest/ztest.c
3573
vdev_t *cvd = vd->vdev_child[c];
usr/src/cmd/ztest/ztest.c
3588
vdev_t *vd, *tvd;
usr/src/cmd/ztest/ztest.c
3624
vd = vdev_walk_tree(tvd, NULL, NULL);
usr/src/cmd/ztest/ztest.c
3625
ASSERT3P(vd, !=, NULL);
usr/src/cmd/ztest/ztest.c
3626
ASSERT(vd->vdev_ops->vdev_op_leaf);
usr/src/cmd/ztest/ztest.c
3628
psize = vd->vdev_psize;
usr/src/cmd/ztest/ztest.c
3647
vd->vdev_path, (ulong_t)psize, (ulong_t)newsize);
usr/src/cmd/ztest/ztest.c
6062
ztest_random_concrete_vdev_leaf(vdev_t *vd)
usr/src/cmd/ztest/ztest.c
6064
if (vd == NULL)
usr/src/cmd/ztest/ztest.c
6067
if (vd->vdev_children == 0)
usr/src/cmd/ztest/ztest.c
6068
return (vd);
usr/src/cmd/ztest/ztest.c
6070
vdev_t *eligible[vd->vdev_children];
usr/src/cmd/ztest/ztest.c
6072
for (i = 0; i < vd->vdev_children; i++) {
usr/src/cmd/ztest/ztest.c
6073
vdev_t *cvd = vd->vdev_child[i];
usr/src/lib/libadm/common/rdwr_vtoc.c
47
#define libadm_vtoc_copy(vs, vd) \
usr/src/lib/libadm/common/rdwr_vtoc.c
50
vd->v_bootinfo[0] = (unsigned)vs->v_bootinfo[0]; \
usr/src/lib/libadm/common/rdwr_vtoc.c
51
vd->v_bootinfo[1] = (unsigned)vs->v_bootinfo[1]; \
usr/src/lib/libadm/common/rdwr_vtoc.c
52
vd->v_bootinfo[2] = (unsigned)vs->v_bootinfo[2]; \
usr/src/lib/libadm/common/rdwr_vtoc.c
53
vd->v_sanity = (unsigned)vs->v_sanity; \
usr/src/lib/libadm/common/rdwr_vtoc.c
54
vd->v_version = (unsigned)vs->v_version; \
usr/src/lib/libadm/common/rdwr_vtoc.c
55
bcopy(vs->v_volume, vd->v_volume, LEN_DKL_VVOL); \
usr/src/lib/libadm/common/rdwr_vtoc.c
56
vd->v_sectorsz = vs->v_sectorsz; \
usr/src/lib/libadm/common/rdwr_vtoc.c
57
vd->v_nparts = vs->v_nparts; \
usr/src/lib/libadm/common/rdwr_vtoc.c
58
vd->v_version = (unsigned)vs->v_version; \
usr/src/lib/libadm/common/rdwr_vtoc.c
60
vd->v_reserved[i] = (unsigned)vs->v_reserved[i];\
usr/src/lib/libadm/common/rdwr_vtoc.c
62
vd->v_part[i].p_tag = vs->v_part[i].p_tag; \
usr/src/lib/libadm/common/rdwr_vtoc.c
63
vd->v_part[i].p_flag = vs->v_part[i].p_flag; \
usr/src/lib/libadm/common/rdwr_vtoc.c
64
vd->v_part[i].p_start = (unsigned)vs->v_part[i].p_start;\
usr/src/lib/libadm/common/rdwr_vtoc.c
65
vd->v_part[i].p_size = (unsigned)vs->v_part[i].p_size; \
usr/src/lib/libadm/common/rdwr_vtoc.c
68
if ((sizeof (vd->timestamp[i]) != sizeof (vs->timestamp[i])) &&\
usr/src/lib/libadm/common/rdwr_vtoc.c
70
vd->timestamp[i] = INT32_MAX; \
usr/src/lib/libadm/common/rdwr_vtoc.c
72
vd->timestamp[i] = (unsigned)vs->timestamp[i]; \
usr/src/lib/libadm/common/rdwr_vtoc.c
73
bcopy(vs->v_asciilabel, vd->v_asciilabel, LEN_DKL_ASCII); \
usr/src/lib/libdladm/common/linkprop.c
4009
val_desc_t vd = { 0 };
usr/src/lib/libdladm/common/linkprop.c
4018
vd.vd_val |= pdp->pd_optval[j].vd_val;
usr/src/lib/libdladm/common/linkprop.c
4024
if (vd.vd_val == 0)
usr/src/lib/libdladm/common/linkprop.c
4027
return (set_public_prop(handle, pdp, linkid, &vd, 1, flags, media));
usr/src/lib/libvmm/libvmm.c
613
vmm_get_desc(vmm_t *vmm, int vcpuid, int desc, vmm_desc_t *vd)
usr/src/lib/libvmm/libvmm.c
619
return (vm_get_desc(vmm->vmm_vcpu[vcpuid], desc, &vd->vd_base,
usr/src/lib/libvmm/libvmm.c
620
&vd->vd_lim,
usr/src/lib/libvmm/libvmm.c
621
&vd->vd_acc));
usr/src/lib/libvmm/libvmm.c
625
vmm_set_desc(vmm_t *vmm, int vcpuid, int desc, vmm_desc_t *vd)
usr/src/lib/libvmm/libvmm.c
631
return (vm_set_desc(vmm->vmm_vcpu[vcpuid], desc, vd->vd_base,
usr/src/lib/libvmm/libvmm.c
632
vd->vd_lim, vd->vd_acc));
usr/src/uts/common/fs/zfs/arc.c
2701
void l2arc_rebuild_vdev(vdev_t *vd, boolean_t reopen);
usr/src/uts/common/fs/zfs/arc.c
2711
static zio_t *l2arc_log_blk_fetch(vdev_t *vd,
usr/src/uts/common/fs/zfs/arc.c
5803
vdev_t *vd = NULL;
usr/src/uts/common/fs/zfs/arc.c
5939
(vd = hdr->b_l2hdr.b_dev->l2ad_vdev) != NULL) {
usr/src/uts/common/fs/zfs/arc.c
5945
if (vdev_is_dead(vd) ||
usr/src/uts/common/fs/zfs/arc.c
5946
!spa_config_tryenter(spa, SCL_L2ARC, vd, RW_READER))
usr/src/uts/common/fs/zfs/arc.c
5947
vd = NULL;
usr/src/uts/common/fs/zfs/arc.c
5974
if (vd != NULL && l2arc_ndev != 0 && !(l2arc_norw && devw)) {
usr/src/uts/common/fs/zfs/arc.c
6012
asize = vdev_psize_to_asize(vd, size);
usr/src/uts/common/fs/zfs/arc.c
6022
addr + asize <= vd->vdev_psize -
usr/src/uts/common/fs/zfs/arc.c
6033
rzio = zio_read_phys(pio, vd, addr,
usr/src/uts/common/fs/zfs/arc.c
6046
DTRACE_PROBE2(l2arc__read, vdev_t *, vd,
usr/src/uts/common/fs/zfs/arc.c
6069
spa_config_exit(spa, SCL_L2ARC, vd);
usr/src/uts/common/fs/zfs/arc.c
6072
if (vd != NULL)
usr/src/uts/common/fs/zfs/arc.c
6073
spa_config_exit(spa, SCL_L2ARC, vd);
usr/src/uts/common/fs/zfs/arc.c
798
static l2arc_dev_t *l2arc_vdev_get(vdev_t *vd);
usr/src/uts/common/fs/zfs/arc.c
8863
l2arc_vdev_present(vdev_t *vd)
usr/src/uts/common/fs/zfs/arc.c
8865
return (l2arc_vdev_get(vd) != NULL);
usr/src/uts/common/fs/zfs/arc.c
8873
l2arc_vdev_get(vdev_t *vd)
usr/src/uts/common/fs/zfs/arc.c
8880
if (dev->l2ad_vdev == vd)
usr/src/uts/common/fs/zfs/arc.c
8893
l2arc_add_vdev(spa_t *spa, vdev_t *vd)
usr/src/uts/common/fs/zfs/arc.c
8898
ASSERT(!l2arc_vdev_present(vd));
usr/src/uts/common/fs/zfs/arc.c
8905
adddev->l2ad_vdev = vd;
usr/src/uts/common/fs/zfs/arc.c
8908
MAX(sizeof (*adddev->l2ad_dev_hdr), 1 << vd->vdev_ashift);
usr/src/uts/common/fs/zfs/arc.c
8910
adddev->l2ad_end = VDEV_LABEL_START_SIZE + vdev_get_min_asize(vd);
usr/src/uts/common/fs/zfs/arc.c
8933
vdev_space_update(vd, 0, 0, adddev->l2ad_end - adddev->l2ad_hand);
usr/src/uts/common/fs/zfs/arc.c
8953
l2arc_rebuild_vdev(vdev_t *vd, boolean_t reopen)
usr/src/uts/common/fs/zfs/arc.c
8960
dev = l2arc_vdev_get(vd);
usr/src/uts/common/fs/zfs/arc.c
9027
l2arc_remove_vdev(vdev_t *vd)
usr/src/uts/common/fs/zfs/arc.c
9034
remdev = l2arc_vdev_get(vd);
usr/src/uts/common/fs/zfs/arc.c
9203
vdev_t *vd = dev->l2ad_vdev;
usr/src/uts/common/fs/zfs/arc.c
9204
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/arc.c
9223
spa_config_enter(spa, SCL_L2ARC, vd, RW_READER);
usr/src/uts/common/fs/zfs/arc.c
9272
spa_config_exit(spa, SCL_L2ARC, vd);
usr/src/uts/common/fs/zfs/arc.c
9299
vdev_space_update(vd, asize, 0, 0);
usr/src/uts/common/fs/zfs/arc.c
9340
if (spa_config_tryenter(spa, SCL_L2ARC, vd,
usr/src/uts/common/fs/zfs/arc.c
9405
spa_config_exit(spa, SCL_L2ARC, vd);
usr/src/uts/common/fs/zfs/arc.c
9732
l2arc_log_blk_fetch(vdev_t *vd, const l2arc_log_blkptr_t *lbp,
usr/src/uts/common/fs/zfs/arc.c
9745
pio = zio_root(vd->vdev_spa, l2arc_blk_fetch_done, cb,
usr/src/uts/common/fs/zfs/arc.c
9748
(void) zio_nowait(zio_read_phys(pio, vd, lbp->lbp_daddr, asize,
usr/src/uts/common/fs/zfs/dsl_pool.c
583
vdev_t *vd = rvd->vdev_child[c];
usr/src/uts/common/fs/zfs/dsl_pool.c
584
txg_list_t *tl = &vd->vdev_ms_list;
usr/src/uts/common/fs/zfs/dsl_scan.c
2659
dsl_scan_count_leaves(vdev_t *vd)
usr/src/uts/common/fs/zfs/dsl_scan.c
2664
if (vd->vdev_islog || vd->vdev_isspare ||
usr/src/uts/common/fs/zfs/dsl_scan.c
2665
vd->vdev_isl2cache || !vdev_readable(vd))
usr/src/uts/common/fs/zfs/dsl_scan.c
2668
if (vd->vdev_ops->vdev_op_leaf)
usr/src/uts/common/fs/zfs/dsl_scan.c
2671
for (i = 0; i < vd->vdev_children; i++) {
usr/src/uts/common/fs/zfs/dsl_scan.c
2672
leaves += dsl_scan_count_leaves(vd->vdev_child[i]);
usr/src/uts/common/fs/zfs/dsl_scan.c
3036
vdev_t *vd = spa->spa_root_vdev->vdev_child[i];
usr/src/uts/common/fs/zfs/dsl_scan.c
3038
mutex_enter(&vd->vdev_scan_io_queue_lock);
usr/src/uts/common/fs/zfs/dsl_scan.c
3039
if (vd->vdev_scan_io_queue != NULL) {
usr/src/uts/common/fs/zfs/dsl_scan.c
3041
scan_io_queues_run_one, vd->vdev_scan_io_queue,
usr/src/uts/common/fs/zfs/dsl_scan.c
3044
mutex_exit(&vd->vdev_scan_io_queue_lock);
usr/src/uts/common/fs/zfs/dsl_scan.c
3102
vdev_t *vd = spa->spa_root_vdev->vdev_child[i];
usr/src/uts/common/fs/zfs/dsl_scan.c
3103
dsl_scan_io_queue_t *queue = vd->vdev_scan_io_queue;
usr/src/uts/common/fs/zfs/dsl_scan.c
3166
dsl_scan_check_deferred(vdev_t *vd)
usr/src/uts/common/fs/zfs/dsl_scan.c
3170
for (int c = 0; c < vd->vdev_children; c++) {
usr/src/uts/common/fs/zfs/dsl_scan.c
3172
dsl_scan_check_deferred(vd->vdev_child[c]);
usr/src/uts/common/fs/zfs/dsl_scan.c
3175
if (!vdev_is_concrete(vd) || vd->vdev_aux ||
usr/src/uts/common/fs/zfs/dsl_scan.c
3176
!vd->vdev_ops->vdev_op_leaf)
usr/src/uts/common/fs/zfs/dsl_scan.c
3179
if (!vd->vdev_resilver_deferred)
usr/src/uts/common/fs/zfs/dsl_scan.c
3189
vdev_t *vd;
usr/src/uts/common/fs/zfs/dsl_scan.c
3191
vd = vdev_lookup_top(spa, DVA_GET_VDEV(dva));
usr/src/uts/common/fs/zfs/dsl_scan.c
3193
if (vd->vdev_ops == &vdev_indirect_ops) {
usr/src/uts/common/fs/zfs/dsl_scan.c
3220
if (!vdev_dtl_contains(vd, DTL_PARTIAL, phys_birth, 1))
usr/src/uts/common/fs/zfs/dsl_scan.c
3229
if (!vdev_dtl_need_resilver(vd, DVA_GET_OFFSET(dva), psize))
usr/src/uts/common/fs/zfs/dsl_scan.c
3236
if (!dsl_scan_check_deferred(vd))
usr/src/uts/common/fs/zfs/dsl_scan.c
334
static dsl_scan_io_queue_t *scan_io_queue_create(vdev_t *vd);
usr/src/uts/common/fs/zfs/dsl_scan.c
4029
scan_io_queue_create(vdev_t *vd)
usr/src/uts/common/fs/zfs/dsl_scan.c
4031
dsl_scan_t *scn = vd->vdev_spa->spa_dsl_pool->dp_scan;
usr/src/uts/common/fs/zfs/dsl_scan.c
4035
q->q_vd = vd;
usr/src/uts/common/fs/zfs/dsl_scan.c
4224
dsl_scan_assess_vdev(dsl_pool_t *dp, vdev_t *vd)
usr/src/uts/common/fs/zfs/dsl_scan.c
4228
if (!vdev_resilver_needed(vd, &min, &max))
usr/src/uts/common/fs/zfs/dsl_scan.c
4241
vdev_defer_resilver(vd);
usr/src/uts/common/fs/zfs/dsl_scan.c
669
vdev_t *vd = spa->spa_root_vdev->vdev_child[i];
usr/src/uts/common/fs/zfs/dsl_scan.c
670
dsl_scan_io_queue_t *q = vd->vdev_scan_io_queue;
usr/src/uts/common/fs/zfs/dsl_scan.c
675
mutex_enter(&vd->vdev_scan_io_queue_lock);
usr/src/uts/common/fs/zfs/dsl_scan.c
680
mutex_exit(&vd->vdev_scan_io_queue_lock);
usr/src/uts/common/fs/zfs/metaslab.c
1000
for (int m = 0; m < vd->vdev_ms_count; m++) {
usr/src/uts/common/fs/zfs/metaslab.c
1001
metaslab_t *msp = vd->vdev_ms[m];
usr/src/uts/common/fs/zfs/metaslab.c
1138
vdev_t *vd = mg->mg_vd;
usr/src/uts/common/fs/zfs/metaslab.c
1142
for (int m = 0; m < vd->vdev_ms_count; m++) {
usr/src/uts/common/fs/zfs/metaslab.c
1143
metaslab_t *msp = vd->vdev_ms[m];
usr/src/uts/common/fs/zfs/metaslab.c
2031
vdev_t *vd = msp->ms_group->mg_vd;
usr/src/uts/common/fs/zfs/metaslab.c
2032
if (vd->vdev_removing)
usr/src/uts/common/fs/zfs/metaslab.c
2041
if (txg_list_member(&vd->vdev_ms_list, msp, t))
usr/src/uts/common/fs/zfs/metaslab.c
2541
metaslab_space_update(vdev_t *vd, metaslab_class_t *mc, int64_t alloc_delta,
usr/src/uts/common/fs/zfs/metaslab.c
2544
vdev_space_update(vd, alloc_delta, defer_delta, space_delta);
usr/src/uts/common/fs/zfs/metaslab.c
2546
ASSERT3P(vd->vdev_spa->spa_root_vdev, ==, vd->vdev_parent);
usr/src/uts/common/fs/zfs/metaslab.c
2547
ASSERT(vd->vdev_ms_count != 0);
usr/src/uts/common/fs/zfs/metaslab.c
2550
vdev_deflated_space(vd, space_delta));
usr/src/uts/common/fs/zfs/metaslab.c
2557
vdev_t *vd = mg->mg_vd;
usr/src/uts/common/fs/zfs/metaslab.c
2558
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/metaslab.c
2571
ms->ms_start = id << vd->vdev_ms_shift;
usr/src/uts/common/fs/zfs/metaslab.c
2572
ms->ms_size = 1ULL << vd->vdev_ms_shift;
usr/src/uts/common/fs/zfs/metaslab.c
2589
ms->ms_size, vd->vdev_ashift);
usr/src/uts/common/fs/zfs/metaslab.c
2603
type = metaslab_calculate_range_tree_type(vd, ms, &start, &shift);
usr/src/uts/common/fs/zfs/metaslab.c
2631
metaslab_space_update(vd, mg->mg_class,
usr/src/uts/common/fs/zfs/metaslab.c
2636
vdev_dirty(vd, 0, NULL, txg);
usr/src/uts/common/fs/zfs/metaslab.c
2637
vdev_dirty(vd, VDD_METASLAB, ms, txg);
usr/src/uts/common/fs/zfs/metaslab.c
2677
vdev_t *vd = mg->mg_vd;
usr/src/uts/common/fs/zfs/metaslab.c
2678
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/metaslab.c
2686
metaslab_space_update(vd, mg->mg_class,
usr/src/uts/common/fs/zfs/metaslab.c
2718
ASSERT(!txg_list_member(&vd->vdev_ms_list, msp, t));
usr/src/uts/common/fs/zfs/metaslab.c
2808
vdev_t *vd = msp->ms_group->mg_vd;
usr/src/uts/common/fs/zfs/metaslab.c
2819
vdev_dirty(vd, VDD_METASLAB, msp, txg + 1);
usr/src/uts/common/fs/zfs/metaslab.c
2822
vd->vdev_id);
usr/src/uts/common/fs/zfs/metaslab.c
2861
vdev_t *vd = mg->mg_vd;
usr/src/uts/common/fs/zfs/metaslab.c
2903
if (!vd->vdev_nonrot && metaslab_lba_weighting_enabled) {
usr/src/uts/common/fs/zfs/metaslab.c
2904
weight = 2 * weight - (msp->ms_id * weight) / vd->vdev_ms_count;
usr/src/uts/common/fs/zfs/metaslab.c
3118
vdev_t *vd = msp->ms_group->mg_vd;
usr/src/uts/common/fs/zfs/metaslab.c
3119
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/metaslab.c
3447
vdev_t *vd = msp->ms_group->mg_vd;
usr/src/uts/common/fs/zfs/metaslab.c
3448
uint64_t vdev_blocksize = 1 << vd->vdev_ashift;
usr/src/uts/common/fs/zfs/metaslab.c
3453
ASSERT3U(spa_sync_pass(vd->vdev_spa), ==, 1);
usr/src/uts/common/fs/zfs/metaslab.c
3820
vdev_t *vd = mg->mg_vd;
usr/src/uts/common/fs/zfs/metaslab.c
3821
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/metaslab.c
3826
ASSERT(!vd->vdev_ishole);
usr/src/uts/common/fs/zfs/metaslab.c
3890
dmu_write(mos, vd->vdev_ms_array, sizeof (uint64_t) *
usr/src/uts/common/fs/zfs/metaslab.c
3894
msp->ms_start, msp->ms_size, vd->vdev_ashift));
usr/src/uts/common/fs/zfs/metaslab.c
3920
vd->vdev_checkpoint_sm == NULL) {
usr/src/uts/common/fs/zfs/metaslab.c
3927
VERIFY0(space_map_open(&vd->vdev_checkpoint_sm,
usr/src/uts/common/fs/zfs/metaslab.c
3928
mos, new_object, 0, vd->vdev_asize, vd->vdev_ashift));
usr/src/uts/common/fs/zfs/metaslab.c
3929
ASSERT3P(vd->vdev_checkpoint_sm, !=, NULL);
usr/src/uts/common/fs/zfs/metaslab.c
3936
VERIFY0(zap_add(vd->vdev_spa->spa_meta_objset,
usr/src/uts/common/fs/zfs/metaslab.c
3937
vd->vdev_top_zap, VDEV_TOP_ZAP_POOL_CHECKPOINT_SM,
usr/src/uts/common/fs/zfs/metaslab.c
3968
vd->vdev_id, tx);
usr/src/uts/common/fs/zfs/metaslab.c
3970
vd->vdev_id, tx);
usr/src/uts/common/fs/zfs/metaslab.c
4000
ASSERT3P(vd->vdev_checkpoint_sm, !=, NULL);
usr/src/uts/common/fs/zfs/metaslab.c
4009
space_map_write(vd->vdev_checkpoint_sm,
usr/src/uts/common/fs/zfs/metaslab.c
4015
vd->vdev_stat.vs_checkpoint_space +=
usr/src/uts/common/fs/zfs/metaslab.c
4017
ASSERT3U(vd->vdev_stat.vs_checkpoint_space, ==,
usr/src/uts/common/fs/zfs/metaslab.c
4018
-space_map_allocated(vd->vdev_checkpoint_sm));
usr/src/uts/common/fs/zfs/metaslab.c
4102
VERIFY0(dmu_read(mos, vd->vdev_ms_array,
usr/src/uts/common/fs/zfs/metaslab.c
4135
vdev_t *vd = mg->mg_vd;
usr/src/uts/common/fs/zfs/metaslab.c
4136
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/metaslab.c
4141
ASSERT(!vd->vdev_ishole);
usr/src/uts/common/fs/zfs/metaslab.c
4152
type = metaslab_calculate_range_tree_type(vd, msp, &start,
usr/src/uts/common/fs/zfs/metaslab.c
417
vdev_t *vd;
usr/src/uts/common/fs/zfs/metaslab.c
4191
metaslab_space_update(vd, mg->mg_class, 0, 0, msp->ms_size);
usr/src/uts/common/fs/zfs/metaslab.c
4200
if (free_space <= spa_get_slop_space(spa) || vd->vdev_removing) {
usr/src/uts/common/fs/zfs/metaslab.c
4214
metaslab_space_update(vd, mg->mg_class, alloc_delta + defer_delta,
usr/src/uts/common/fs/zfs/metaslab.c
4274
vdev_dirty(vd, VDD_METASLAB, msp, txg + 1);
usr/src/uts/common/fs/zfs/metaslab.c
429
vd = mg->mg_vd;
usr/src/uts/common/fs/zfs/metaslab.c
430
ASSERT(vd->vdev_mg != NULL);
usr/src/uts/common/fs/zfs/metaslab.c
431
ASSERT3P(vd->vdev_top, ==, vd);
usr/src/uts/common/fs/zfs/metaslab.c
433
ASSERT3P(vd->vdev_ops, !=, &vdev_hole_ops);
usr/src/uts/common/fs/zfs/metaslab.c
4528
vdev_t *vd = mg->mg_vd;
usr/src/uts/common/fs/zfs/metaslab.c
4530
VERIFY0(P2PHASE(start, 1ULL << vd->vdev_ashift));
usr/src/uts/common/fs/zfs/metaslab.c
4531
VERIFY0(P2PHASE(size, 1ULL << vd->vdev_ashift));
usr/src/uts/common/fs/zfs/metaslab.c
5008
vdev_t *vd;
usr/src/uts/common/fs/zfs/metaslab.c
5046
vd = vdev_lookup_top(spa, DVA_GET_VDEV(&hintdva[d]));
usr/src/uts/common/fs/zfs/metaslab.c
5054
if (vd != NULL && vd->vdev_mg != NULL) {
usr/src/uts/common/fs/zfs/metaslab.c
5055
mg = vd->vdev_mg;
usr/src/uts/common/fs/zfs/metaslab.c
5064
vd = vdev_lookup_top(spa, DVA_GET_VDEV(&dva[d - 1]));
usr/src/uts/common/fs/zfs/metaslab.c
5065
mg = vd->vdev_mg->mg_next;
usr/src/uts/common/fs/zfs/metaslab.c
5084
vd = mg->mg_vd;
usr/src/uts/common/fs/zfs/metaslab.c
5091
allocatable = vdev_allocatable(vd);
usr/src/uts/common/fs/zfs/metaslab.c
5094
allocatable = vdev_allocatable(vd);
usr/src/uts/common/fs/zfs/metaslab.c
5122
if ((vd->vdev_stat.vs_write_errors > 0 ||
usr/src/uts/common/fs/zfs/metaslab.c
5123
vd->vdev_state < VDEV_STATE_HEALTHY) &&
usr/src/uts/common/fs/zfs/metaslab.c
5124
d == 0 && !try_hard && vd->vdev_children == 0) {
usr/src/uts/common/fs/zfs/metaslab.c
5132
uint64_t asize = vdev_psize_to_asize(vd, psize);
usr/src/uts/common/fs/zfs/metaslab.c
5133
ASSERT(P2PHASE(asize, 1ULL << vd->vdev_ashift) == 0);
usr/src/uts/common/fs/zfs/metaslab.c
5152
vdev_stat_t *vs = &vd->vdev_stat;
usr/src/uts/common/fs/zfs/metaslab.c
5183
DVA_SET_VDEV(&dva[d], vd->vdev_id);
usr/src/uts/common/fs/zfs/metaslab.c
5210
metaslab_free_concrete(vdev_t *vd, uint64_t offset, uint64_t asize,
usr/src/uts/common/fs/zfs/metaslab.c
5214
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/metaslab.c
5216
ASSERT(vdev_is_concrete(vd));
usr/src/uts/common/fs/zfs/metaslab.c
5218
ASSERT3U(offset >> vd->vdev_ms_shift, <, vd->vdev_ms_count);
usr/src/uts/common/fs/zfs/metaslab.c
5220
msp = vd->vdev_ms[offset >> vd->vdev_ms_shift];
usr/src/uts/common/fs/zfs/metaslab.c
5225
VERIFY0(P2PHASE(offset, 1ULL << vd->vdev_ashift));
usr/src/uts/common/fs/zfs/metaslab.c
5226
VERIFY0(P2PHASE(asize, 1ULL << vd->vdev_ashift));
usr/src/uts/common/fs/zfs/metaslab.c
5228
metaslab_check_free_impl(vd, offset, asize);
usr/src/uts/common/fs/zfs/metaslab.c
5233
vdev_dirty(vd, VDD_METASLAB, msp, spa_syncing_txg(spa));
usr/src/uts/common/fs/zfs/metaslab.c
5247
metaslab_free_impl_cb(uint64_t inner_offset, vdev_t *vd, uint64_t offset,
usr/src/uts/common/fs/zfs/metaslab.c
5254
if (vd->vdev_ops->vdev_op_remap != NULL)
usr/src/uts/common/fs/zfs/metaslab.c
5255
vdev_indirect_mark_obsolete(vd, offset, size);
usr/src/uts/common/fs/zfs/metaslab.c
5257
metaslab_free_impl(vd, offset, size, *checkpoint);
usr/src/uts/common/fs/zfs/metaslab.c
5261
metaslab_free_impl(vdev_t *vd, uint64_t offset, uint64_t size,
usr/src/uts/common/fs/zfs/metaslab.c
5264
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/metaslab.c
5272
spa->spa_vdev_removal->svr_vdev_id == vd->vdev_id &&
usr/src/uts/common/fs/zfs/metaslab.c
5273
vdev_is_concrete(vd)) {
usr/src/uts/common/fs/zfs/metaslab.c
5280
free_from_removing_vdev(vd, offset, size);
usr/src/uts/common/fs/zfs/metaslab.c
5281
} else if (vd->vdev_ops->vdev_op_remap != NULL) {
usr/src/uts/common/fs/zfs/metaslab.c
5282
vdev_indirect_mark_obsolete(vd, offset, size);
usr/src/uts/common/fs/zfs/metaslab.c
5283
vd->vdev_ops->vdev_op_remap(vd, offset, size,
usr/src/uts/common/fs/zfs/metaslab.c
5286
metaslab_free_concrete(vd, offset, size, checkpoint);
usr/src/uts/common/fs/zfs/metaslab.c
5299
remap_blkptr_cb(uint64_t inner_offset, vdev_t *vd, uint64_t offset,
usr/src/uts/common/fs/zfs/metaslab.c
5322
rbca->rbca_remap_vd = vd;
usr/src/uts/common/fs/zfs/metaslab.c
5336
vdev_t *oldvd = vdev_lookup_top(vd->vdev_spa,
usr/src/uts/common/fs/zfs/metaslab.c
5342
DVA_SET_VDEV(&bp->blk_dva[0], vd->vdev_id);
usr/src/uts/common/fs/zfs/metaslab.c
5399
vdev_t *vd = vdev_lookup_top(spa, DVA_GET_VDEV(dva));
usr/src/uts/common/fs/zfs/metaslab.c
5401
if (vd->vdev_ops->vdev_op_remap == NULL)
usr/src/uts/common/fs/zfs/metaslab.c
5406
rbca.rbca_remap_vd = vd;
usr/src/uts/common/fs/zfs/metaslab.c
5417
vd->vdev_ops->vdev_op_remap(vd, offset, size, remap_blkptr_cb, &rbca);
usr/src/uts/common/fs/zfs/metaslab.c
5420
if (DVA_GET_VDEV(&rbca.rbca_bp->blk_dva[0]) == vd->vdev_id)
usr/src/uts/common/fs/zfs/metaslab.c
5433
vdev_t *vd;
usr/src/uts/common/fs/zfs/metaslab.c
5444
if ((vd = vdev_lookup_top(spa, vdev)) == NULL ||
usr/src/uts/common/fs/zfs/metaslab.c
5445
(offset >> vd->vdev_ms_shift) >= vd->vdev_ms_count) {
usr/src/uts/common/fs/zfs/metaslab.c
5452
ASSERT(!vd->vdev_removing);
usr/src/uts/common/fs/zfs/metaslab.c
5453
ASSERT(vdev_is_concrete(vd));
usr/src/uts/common/fs/zfs/metaslab.c
5454
ASSERT0(vd->vdev_indirect_config.vic_mapping_object);
usr/src/uts/common/fs/zfs/metaslab.c
5455
ASSERT3P(vd->vdev_indirect_mapping, ==, NULL);
usr/src/uts/common/fs/zfs/metaslab.c
5458
size = vdev_psize_to_asize(vd, SPA_GANGBLOCKSIZE);
usr/src/uts/common/fs/zfs/metaslab.c
5460
msp = vd->vdev_ms[offset >> vd->vdev_ms_shift];
usr/src/uts/common/fs/zfs/metaslab.c
5472
VERIFY0(P2PHASE(offset, 1ULL << vd->vdev_ashift));
usr/src/uts/common/fs/zfs/metaslab.c
5473
VERIFY0(P2PHASE(size, 1ULL << vd->vdev_ashift));
usr/src/uts/common/fs/zfs/metaslab.c
5487
vdev_t *vd = vdev_lookup_top(spa, vdev);
usr/src/uts/common/fs/zfs/metaslab.c
5493
size = vdev_psize_to_asize(vd, SPA_GANGBLOCKSIZE);
usr/src/uts/common/fs/zfs/metaslab.c
5496
metaslab_free_impl(vd, offset, size, checkpoint);
usr/src/uts/common/fs/zfs/metaslab.c
5549
metaslab_claim_concrete(vdev_t *vd, uint64_t offset, uint64_t size,
usr/src/uts/common/fs/zfs/metaslab.c
5553
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/metaslab.c
5556
if (offset >> vd->vdev_ms_shift >= vd->vdev_ms_count)
usr/src/uts/common/fs/zfs/metaslab.c
5559
ASSERT3P(vd->vdev_ms, !=, NULL);
usr/src/uts/common/fs/zfs/metaslab.c
5560
msp = vd->vdev_ms[offset >> vd->vdev_ms_shift];
usr/src/uts/common/fs/zfs/metaslab.c
5583
VERIFY0(P2PHASE(offset, 1ULL << vd->vdev_ashift));
usr/src/uts/common/fs/zfs/metaslab.c
5584
VERIFY0(P2PHASE(size, 1ULL << vd->vdev_ashift));
usr/src/uts/common/fs/zfs/metaslab.c
5601
vdev_dirty(vd, VDD_METASLAB, msp, txg);
usr/src/uts/common/fs/zfs/metaslab.c
5619
metaslab_claim_impl_cb(uint64_t inner_offset, vdev_t *vd, uint64_t offset,
usr/src/uts/common/fs/zfs/metaslab.c
5625
mcca_arg->mcca_error = metaslab_claim_concrete(vd, offset,
usr/src/uts/common/fs/zfs/metaslab.c
5631
metaslab_claim_impl(vdev_t *vd, uint64_t offset, uint64_t size, uint64_t txg)
usr/src/uts/common/fs/zfs/metaslab.c
5633
if (vd->vdev_ops->vdev_op_remap != NULL) {
usr/src/uts/common/fs/zfs/metaslab.c
5641
ASSERT(!spa_writeable(vd->vdev_spa));
usr/src/uts/common/fs/zfs/metaslab.c
5645
vd->vdev_ops->vdev_op_remap(vd, offset, size,
usr/src/uts/common/fs/zfs/metaslab.c
5649
arg.mcca_error = metaslab_claim_concrete(vd,
usr/src/uts/common/fs/zfs/metaslab.c
5654
return (metaslab_claim_concrete(vd, offset, size, txg));
usr/src/uts/common/fs/zfs/metaslab.c
5670
vdev_t *vd;
usr/src/uts/common/fs/zfs/metaslab.c
5672
if ((vd = vdev_lookup_top(spa, vdev)) == NULL) {
usr/src/uts/common/fs/zfs/metaslab.c
5679
size = vdev_psize_to_asize(vd, SPA_GANGBLOCKSIZE);
usr/src/uts/common/fs/zfs/metaslab.c
5681
return (metaslab_claim_impl(vd, offset, size, txg));
usr/src/uts/common/fs/zfs/metaslab.c
5826
metaslab_check_free_impl_cb(uint64_t inner, vdev_t *vd, uint64_t offset,
usr/src/uts/common/fs/zfs/metaslab.c
5829
if (vd->vdev_ops == &vdev_indirect_ops)
usr/src/uts/common/fs/zfs/metaslab.c
5832
metaslab_check_free_impl(vd, offset, size);
usr/src/uts/common/fs/zfs/metaslab.c
5836
metaslab_check_free_impl(vdev_t *vd, uint64_t offset, uint64_t size)
usr/src/uts/common/fs/zfs/metaslab.c
5839
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/metaslab.c
5844
if (vd->vdev_ops->vdev_op_remap != NULL) {
usr/src/uts/common/fs/zfs/metaslab.c
5845
vd->vdev_ops->vdev_op_remap(vd, offset, size,
usr/src/uts/common/fs/zfs/metaslab.c
5850
ASSERT(vdev_is_concrete(vd));
usr/src/uts/common/fs/zfs/metaslab.c
5851
ASSERT3U(offset >> vd->vdev_ms_shift, <, vd->vdev_ms_count);
usr/src/uts/common/fs/zfs/metaslab.c
5854
msp = vd->vdev_ms[offset >> vd->vdev_ms_shift];
usr/src/uts/common/fs/zfs/metaslab.c
5891
vdev_t *vd = vdev_lookup_top(spa, vdev);
usr/src/uts/common/fs/zfs/metaslab.c
5896
size = vdev_psize_to_asize(vd, SPA_GANGBLOCKSIZE);
usr/src/uts/common/fs/zfs/metaslab.c
5898
ASSERT3P(vd, !=, NULL);
usr/src/uts/common/fs/zfs/metaslab.c
5900
metaslab_check_free_impl(vd, offset, size);
usr/src/uts/common/fs/zfs/metaslab.c
5993
vdev_t *vd = ms->ms_group->mg_vd;
usr/src/uts/common/fs/zfs/metaslab.c
5994
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/metaslab.c
6006
int err = zap_lookup(mos, vd->vdev_top_zap,
usr/src/uts/common/fs/zfs/metaslab.c
6012
VERIFY0(zap_add(mos, vd->vdev_top_zap,
usr/src/uts/common/fs/zfs/metaslab.c
700
vdev_t *vd = mg->mg_vd;
usr/src/uts/common/fs/zfs/metaslab.c
702
vdev_stat_t *vs = &vd->vdev_stat;
usr/src/uts/common/fs/zfs/metaslab.c
706
ASSERT(vd == vd->vdev_top);
usr/src/uts/common/fs/zfs/metaslab.c
792
metaslab_group_create(metaslab_class_t *mc, vdev_t *vd, int allocators)
usr/src/uts/common/fs/zfs/metaslab.c
806
mg->mg_vd = vd;
usr/src/uts/common/fs/zfs/metaslab.c
971
vdev_t *vd = mg->mg_vd;
usr/src/uts/common/fs/zfs/metaslab.c
972
vdev_stat_t *vs = &vd->vdev_stat;
usr/src/uts/common/fs/zfs/metaslab.c
987
vdev_t *vd = mg->mg_vd;
usr/src/uts/common/fs/zfs/metaslab.c
988
uint64_t ashift = vd->vdev_ashift;
usr/src/uts/common/fs/zfs/mmp.c
392
vdev_t *vd = zio->io_vd;
usr/src/uts/common/fs/zfs/mmp.c
396
uint64_t mmp_kstat_id = vd->vdev_mmp_kstat_id;
usr/src/uts/common/fs/zfs/mmp.c
397
hrtime_t mmp_write_duration = gethrtime() - vd->vdev_mmp_pending;
usr/src/uts/common/fs/zfs/mmp.c
401
vd->vdev_mmp_pending = 0;
usr/src/uts/common/fs/zfs/mmp.c
402
vd->vdev_mmp_kstat_id = 0;
usr/src/uts/common/fs/zfs/mmp.c
439
vdev_t *vd = NULL;
usr/src/uts/common/fs/zfs/mmp.c
487
vd = spa->spa_mmp.mmp_last_leaf;
usr/src/uts/common/fs/zfs/mmp.c
492
spa_name(spa), gethrtime(), vd->vdev_guid);
usr/src/uts/common/fs/zfs/mmp.c
516
vd->vdev_mmp_pending = gethrtime();
usr/src/uts/common/fs/zfs/mmp.c
517
vd->vdev_mmp_kstat_id = mmp->mmp_kstat_id;
usr/src/uts/common/fs/zfs/mmp.c
520
abd_t *ub_abd = abd_alloc_for_io(VDEV_UBERBLOCK_SIZE(vd), B_TRUE);
usr/src/uts/common/fs/zfs/mmp.c
521
abd_zero(ub_abd, VDEV_UBERBLOCK_SIZE(vd));
usr/src/uts/common/fs/zfs/mmp.c
528
offset = VDEV_UBERBLOCK_OFFSET(vd, VDEV_UBERBLOCK_COUNT(vd) -
usr/src/uts/common/fs/zfs/mmp.c
532
vdev_label_write(zio, vd, label, ub_abd, offset,
usr/src/uts/common/fs/zfs/mmp.c
533
VDEV_UBERBLOCK_SIZE(vd), mmp_write_done, mmp,
usr/src/uts/common/fs/zfs/spa.c
1350
vdev_t *vd;
usr/src/uts/common/fs/zfs/spa.c
1351
if ((error = spa_config_parse(spa, &vd, child[c], *vdp, c,
usr/src/uts/common/fs/zfs/spa.c
1590
vdev_t *vd, *tvd;
usr/src/uts/common/fs/zfs/spa.c
1610
vd = spa->spa_spares.sav_vdevs[i];
usr/src/uts/common/fs/zfs/spa.c
1613
if ((tvd = spa_lookup_by_guid(spa, vd->vdev_guid,
usr/src/uts/common/fs/zfs/spa.c
1616
vdev_close(vd);
usr/src/uts/common/fs/zfs/spa.c
1617
vdev_free(vd);
usr/src/uts/common/fs/zfs/spa.c
1648
VERIFY(spa_config_parse(spa, &vd, spares[i], NULL, 0,
usr/src/uts/common/fs/zfs/spa.c
1650
ASSERT(vd != NULL);
usr/src/uts/common/fs/zfs/spa.c
1652
spa->spa_spares.sav_vdevs[i] = vd;
usr/src/uts/common/fs/zfs/spa.c
1654
if ((tvd = spa_lookup_by_guid(spa, vd->vdev_guid,
usr/src/uts/common/fs/zfs/spa.c
1676
vd->vdev_top = vd;
usr/src/uts/common/fs/zfs/spa.c
1677
vd->vdev_aux = &spa->spa_spares;
usr/src/uts/common/fs/zfs/spa.c
1679
if (vdev_open(vd) != 0)
usr/src/uts/common/fs/zfs/spa.c
1682
if (vdev_validate_aux(vd) == 0)
usr/src/uts/common/fs/zfs/spa.c
1683
spa_spare_add(vd);
usr/src/uts/common/fs/zfs/spa.c
1720
vdev_t *vd, **oldvdevs, **newvdevs;
usr/src/uts/common/fs/zfs/spa.c
1763
vd = oldvdevs[j];
usr/src/uts/common/fs/zfs/spa.c
1764
if (vd != NULL && guid == vd->vdev_guid) {
usr/src/uts/common/fs/zfs/spa.c
1768
newvdevs[i] = vd;
usr/src/uts/common/fs/zfs/spa.c
1778
VERIFY(spa_config_parse(spa, &vd, l2cache[i], NULL, 0,
usr/src/uts/common/fs/zfs/spa.c
1780
ASSERT(vd != NULL);
usr/src/uts/common/fs/zfs/spa.c
1781
newvdevs[i] = vd;
usr/src/uts/common/fs/zfs/spa.c
1787
spa_l2cache_add(vd);
usr/src/uts/common/fs/zfs/spa.c
1789
vd->vdev_top = vd;
usr/src/uts/common/fs/zfs/spa.c
1790
vd->vdev_aux = sav;
usr/src/uts/common/fs/zfs/spa.c
1792
spa_l2cache_activate(vd);
usr/src/uts/common/fs/zfs/spa.c
1794
if (vdev_open(vd) != 0)
usr/src/uts/common/fs/zfs/spa.c
1797
(void) vdev_validate_aux(vd);
usr/src/uts/common/fs/zfs/spa.c
1799
if (!vdev_is_dead(vd))
usr/src/uts/common/fs/zfs/spa.c
1800
l2arc_add_vdev(spa, vd);
usr/src/uts/common/fs/zfs/spa.c
1810
vd = oldvdevs[i];
usr/src/uts/common/fs/zfs/spa.c
1811
if (vd != NULL) {
usr/src/uts/common/fs/zfs/spa.c
1812
ASSERT(vd->vdev_isl2cache);
usr/src/uts/common/fs/zfs/spa.c
1814
if (spa_l2cache_exists(vd->vdev_guid, &pool) &&
usr/src/uts/common/fs/zfs/spa.c
1815
pool != 0ULL && l2arc_vdev_present(vd))
usr/src/uts/common/fs/zfs/spa.c
1816
l2arc_remove_vdev(vd);
usr/src/uts/common/fs/zfs/spa.c
1817
vdev_clear_stats(vd);
usr/src/uts/common/fs/zfs/spa.c
1818
vdev_free(vd);
usr/src/uts/common/fs/zfs/spa.c
1892
vdev_t *vd = rvd->vdev_child[i];
usr/src/uts/common/fs/zfs/spa.c
1893
if (vd->vdev_islog)
usr/src/uts/common/fs/zfs/spa.c
1895
if (vdev_is_concrete(vd) && !vdev_is_dead(vd))
usr/src/uts/common/fs/zfs/spa.c
1907
spa_check_removed(vdev_t *vd)
usr/src/uts/common/fs/zfs/spa.c
1909
for (uint64_t c = 0; c < vd->vdev_children; c++)
usr/src/uts/common/fs/zfs/spa.c
1910
spa_check_removed(vd->vdev_child[c]);
usr/src/uts/common/fs/zfs/spa.c
1912
if (vd->vdev_ops->vdev_op_leaf && vdev_is_dead(vd) &&
usr/src/uts/common/fs/zfs/spa.c
1913
vdev_is_concrete(vd)) {
usr/src/uts/common/fs/zfs/spa.c
1914
zfs_post_autoreplace(vd->vdev_spa, vd);
usr/src/uts/common/fs/zfs/spa.c
1915
spa_event_notify(vd->vdev_spa, vd, NULL, ESC_ZFS_VDEV_CHECK);
usr/src/uts/common/fs/zfs/spa.c
2321
vdev_t **vd;
usr/src/uts/common/fs/zfs/spa.c
2332
vd = kmem_zalloc(gcount * sizeof (vdev_t *), KM_SLEEP);
usr/src/uts/common/fs/zfs/spa.c
2340
vd[i] = spa_lookup_by_guid(spa, glist[i], B_FALSE);
usr/src/uts/common/fs/zfs/spa.c
2341
if (vd[i] == NULL) {
usr/src/uts/common/fs/zfs/spa.c
2349
vd[i]->vdev_offline = B_FALSE;
usr/src/uts/common/fs/zfs/spa.c
2358
if (vd[i] != NULL &&
usr/src/uts/common/fs/zfs/spa.c
2359
vd[i]->vdev_stat.vs_aux != VDEV_AUX_SPLIT_POOL)
usr/src/uts/common/fs/zfs/spa.c
2372
if (vd[i] != NULL)
usr/src/uts/common/fs/zfs/spa.c
2373
vdev_split(vd[i]);
usr/src/uts/common/fs/zfs/spa.c
2377
kmem_free(vd, gcount * sizeof (vdev_t *));
usr/src/uts/common/fs/zfs/spa.c
2422
vdev_count_verify_zaps(vdev_t *vd)
usr/src/uts/common/fs/zfs/spa.c
2424
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/spa.c
2426
if (vd->vdev_top_zap != 0) {
usr/src/uts/common/fs/zfs/spa.c
2429
spa->spa_all_vdev_zaps, vd->vdev_top_zap));
usr/src/uts/common/fs/zfs/spa.c
2431
if (vd->vdev_leaf_zap != 0) {
usr/src/uts/common/fs/zfs/spa.c
2434
spa->spa_all_vdev_zaps, vd->vdev_leaf_zap));
usr/src/uts/common/fs/zfs/spa.c
2437
for (uint64_t i = 0; i < vd->vdev_children; i++) {
usr/src/uts/common/fs/zfs/spa.c
2438
total += vdev_count_verify_zaps(vd->vdev_child[i]);
usr/src/uts/common/fs/zfs/spa.c
4057
vdev_t *vd = rvd->vdev_child[(c0 + c) % children];
usr/src/uts/common/fs/zfs/spa.c
4060
if (c > 0 && svd[0] == vd)
usr/src/uts/common/fs/zfs/spa.c
4063
if (vd->vdev_ms_array == 0 || vd->vdev_islog ||
usr/src/uts/common/fs/zfs/spa.c
4064
!vdev_is_concrete(vd))
usr/src/uts/common/fs/zfs/spa.c
4067
svd[svdcount++] = vd;
usr/src/uts/common/fs/zfs/spa.c
4735
vdev_t *vd;
usr/src/uts/common/fs/zfs/spa.c
4762
vd = NULL;
usr/src/uts/common/fs/zfs/spa.c
4766
vd = spa->spa_l2cache.sav_vdevs[j];
usr/src/uts/common/fs/zfs/spa.c
4770
ASSERT(vd != NULL);
usr/src/uts/common/fs/zfs/spa.c
4775
vdev_get_stats(vd, vs);
usr/src/uts/common/fs/zfs/spa.c
4776
vdev_config_generate_stats(vd, l2cache[i]);
usr/src/uts/common/fs/zfs/spa.c
4908
vdev_t *vd;
usr/src/uts/common/fs/zfs/spa.c
4937
if ((error = spa_config_parse(spa, &vd, dev[i], NULL, 0,
usr/src/uts/common/fs/zfs/spa.c
4941
if (!vd->vdev_ops->vdev_op_leaf) {
usr/src/uts/common/fs/zfs/spa.c
4942
vdev_free(vd);
usr/src/uts/common/fs/zfs/spa.c
4947
vd->vdev_top = vd;
usr/src/uts/common/fs/zfs/spa.c
4949
if ((error = vdev_open(vd)) == 0 &&
usr/src/uts/common/fs/zfs/spa.c
4950
(error = vdev_label_init(vd, crtxg, label)) == 0) {
usr/src/uts/common/fs/zfs/spa.c
4952
vd->vdev_guid) == 0);
usr/src/uts/common/fs/zfs/spa.c
4955
vdev_free(vd);
usr/src/uts/common/fs/zfs/spa.c
5040
vdev_t *vd;
usr/src/uts/common/fs/zfs/spa.c
5047
vd = sav->sav_vdevs[i];
usr/src/uts/common/fs/zfs/spa.c
5048
ASSERT(vd != NULL);
usr/src/uts/common/fs/zfs/spa.c
5050
if (spa_l2cache_exists(vd->vdev_guid, &pool) &&
usr/src/uts/common/fs/zfs/spa.c
5051
pool != 0ULL && l2arc_vdev_present(vd))
usr/src/uts/common/fs/zfs/spa.c
5052
l2arc_remove_vdev(vd);
usr/src/uts/common/fs/zfs/spa.c
5207
vdev_t *vd = rvd->vdev_child[c];
usr/src/uts/common/fs/zfs/spa.c
5209
vdev_metaslab_set_size(vd);
usr/src/uts/common/fs/zfs/spa.c
5210
vdev_expand(vd, txg);
usr/src/uts/common/fs/zfs/spa.c
5435
spa_alt_rootvdev(vdev_t *vd, vdev_t **avd, uint64_t *txg)
usr/src/uts/common/fs/zfs/spa.c
5437
for (int c = 0; c < vd->vdev_children; c++)
usr/src/uts/common/fs/zfs/spa.c
5438
spa_alt_rootvdev(vd->vdev_child[c], avd, txg);
usr/src/uts/common/fs/zfs/spa.c
5440
if (vd->vdev_ops->vdev_op_leaf) {
usr/src/uts/common/fs/zfs/spa.c
5444
if (vdev_disk_read_rootlabel(vd->vdev_physpath, vd->vdev_devid,
usr/src/uts/common/fs/zfs/spa.c
5456
*avd = vd;
usr/src/uts/common/fs/zfs/spa.c
6103
vdev_t *vd, *tvd;
usr/src/uts/common/fs/zfs/spa.c
6111
if ((error = spa_config_parse(spa, &vd, nvroot, NULL, 0,
usr/src/uts/common/fs/zfs/spa.c
6115
spa->spa_pending_vdev = vd; /* spa_vdev_exit() will clear this */
usr/src/uts/common/fs/zfs/spa.c
6125
if (vd->vdev_children == 0 && nspares == 0 && nl2cache == 0)
usr/src/uts/common/fs/zfs/spa.c
6126
return (spa_vdev_exit(spa, vd, txg, EINVAL));
usr/src/uts/common/fs/zfs/spa.c
6128
if (vd->vdev_children != 0 &&
usr/src/uts/common/fs/zfs/spa.c
6129
(error = vdev_create(vd, txg, B_FALSE)) != 0)
usr/src/uts/common/fs/zfs/spa.c
6130
return (spa_vdev_exit(spa, vd, txg, error));
usr/src/uts/common/fs/zfs/spa.c
6137
return (spa_vdev_exit(spa, vd, txg, error));
usr/src/uts/common/fs/zfs/spa.c
6147
for (int c = 0; c < vd->vdev_children; c++) {
usr/src/uts/common/fs/zfs/spa.c
6148
tvd = vd->vdev_child[c];
usr/src/uts/common/fs/zfs/spa.c
6151
return (spa_vdev_exit(spa, vd, txg, EINVAL));
usr/src/uts/common/fs/zfs/spa.c
6155
return (spa_vdev_exit(spa, vd, txg, EINVAL));
usr/src/uts/common/fs/zfs/spa.c
6166
return (spa_vdev_exit(spa, vd,
usr/src/uts/common/fs/zfs/spa.c
6174
for (int c = 0; c < vd->vdev_children; c++) {
usr/src/uts/common/fs/zfs/spa.c
6175
tvd = vd->vdev_child[c];
usr/src/uts/common/fs/zfs/spa.c
6176
vdev_remove_child(vd, tvd);
usr/src/uts/common/fs/zfs/spa.c
6209
(void) spa_vdev_exit(spa, vd, txg, 0);
usr/src/uts/common/fs/zfs/spa.c
6457
vdev_t *vd, *pvd, *cvd, *tvd;
usr/src/uts/common/fs/zfs/spa.c
6466
vd = spa_lookup_by_guid(spa, guid, B_FALSE);
usr/src/uts/common/fs/zfs/spa.c
6489
if (vd == NULL)
usr/src/uts/common/fs/zfs/spa.c
6492
if (!vd->vdev_ops->vdev_op_leaf)
usr/src/uts/common/fs/zfs/spa.c
6495
pvd = vd->vdev_parent;
usr/src/uts/common/fs/zfs/spa.c
6535
if (vdev_dtl_required(vd))
usr/src/uts/common/fs/zfs/spa.c
6545
if (pvd->vdev_ops == &vdev_replacing_ops && vd->vdev_id > 0 &&
usr/src/uts/common/fs/zfs/spa.c
6546
vd->vdev_path != NULL) {
usr/src/uts/common/fs/zfs/spa.c
6547
size_t len = strlen(vd->vdev_path);
usr/src/uts/common/fs/zfs/spa.c
6552
if (cvd == vd || cvd->vdev_path == NULL)
usr/src/uts/common/fs/zfs/spa.c
6555
if (strncmp(cvd->vdev_path, vd->vdev_path, len) == 0 &&
usr/src/uts/common/fs/zfs/spa.c
6558
cvd->vdev_path = spa_strdup(vd->vdev_path);
usr/src/uts/common/fs/zfs/spa.c
6570
vd->vdev_id == 0 &&
usr/src/uts/common/fs/zfs/spa.c
6582
error = vdev_label_init(vd, 0, VDEV_LABEL_REMOVE);
usr/src/uts/common/fs/zfs/spa.c
6587
vdev_remove_child(pvd, vd);
usr/src/uts/common/fs/zfs/spa.c
6654
vdpath = spa_strdup(vd->vdev_path);
usr/src/uts/common/fs/zfs/spa.c
6656
(void) txg_list_remove_this(&tvd->vdev_dtl_list, vd, t);
usr/src/uts/common/fs/zfs/spa.c
6657
vd->vdev_detached = B_TRUE;
usr/src/uts/common/fs/zfs/spa.c
6658
vdev_dirty(tvd, VDD_DTL, vd, txg);
usr/src/uts/common/fs/zfs/spa.c
6660
spa_event_notify(spa, vd, NULL, ESC_ZFS_VDEV_REMOVE);
usr/src/uts/common/fs/zfs/spa.c
6665
error = spa_vdev_exit(spa, vd, txg, 0);
usr/src/uts/common/fs/zfs/spa.c
6714
vdev_t *vd = spa_lookup_by_guid(spa, guid, B_FALSE);
usr/src/uts/common/fs/zfs/spa.c
6715
if (vd == NULL || vd->vdev_detached) {
usr/src/uts/common/fs/zfs/spa.c
6718
} else if (!vd->vdev_ops->vdev_op_leaf || !vdev_is_concrete(vd)) {
usr/src/uts/common/fs/zfs/spa.c
6721
} else if (!vdev_writeable(vd)) {
usr/src/uts/common/fs/zfs/spa.c
6725
mutex_enter(&vd->vdev_initialize_lock);
usr/src/uts/common/fs/zfs/spa.c
6736
(vd->vdev_initialize_thread != NULL ||
usr/src/uts/common/fs/zfs/spa.c
6737
vd->vdev_top->vdev_removing)) {
usr/src/uts/common/fs/zfs/spa.c
6738
mutex_exit(&vd->vdev_initialize_lock);
usr/src/uts/common/fs/zfs/spa.c
6741
(vd->vdev_initialize_state != VDEV_INITIALIZE_ACTIVE &&
usr/src/uts/common/fs/zfs/spa.c
6742
vd->vdev_initialize_state != VDEV_INITIALIZE_SUSPENDED)) {
usr/src/uts/common/fs/zfs/spa.c
6743
mutex_exit(&vd->vdev_initialize_lock);
usr/src/uts/common/fs/zfs/spa.c
6746
vd->vdev_initialize_state != VDEV_INITIALIZE_ACTIVE) {
usr/src/uts/common/fs/zfs/spa.c
6747
mutex_exit(&vd->vdev_initialize_lock);
usr/src/uts/common/fs/zfs/spa.c
6753
vdev_initialize(vd);
usr/src/uts/common/fs/zfs/spa.c
6756
vdev_initialize_stop(vd, VDEV_INITIALIZE_CANCELED, vd_list);
usr/src/uts/common/fs/zfs/spa.c
6759
vdev_initialize_stop(vd, VDEV_INITIALIZE_SUSPENDED, vd_list);
usr/src/uts/common/fs/zfs/spa.c
6764
mutex_exit(&vd->vdev_initialize_lock);
usr/src/uts/common/fs/zfs/spa.c
6825
vdev_t *vd = spa_lookup_by_guid(spa, guid, B_FALSE);
usr/src/uts/common/fs/zfs/spa.c
6826
if (vd == NULL || vd->vdev_detached) {
usr/src/uts/common/fs/zfs/spa.c
6829
} else if (!vd->vdev_ops->vdev_op_leaf || !vdev_is_concrete(vd)) {
usr/src/uts/common/fs/zfs/spa.c
6832
} else if (!vdev_writeable(vd)) {
usr/src/uts/common/fs/zfs/spa.c
6835
} else if (!vd->vdev_has_trim) {
usr/src/uts/common/fs/zfs/spa.c
6838
} else if (secure && !vd->vdev_has_securetrim) {
usr/src/uts/common/fs/zfs/spa.c
6842
mutex_enter(&vd->vdev_trim_lock);
usr/src/uts/common/fs/zfs/spa.c
6852
(vd->vdev_trim_thread != NULL || vd->vdev_top->vdev_removing)) {
usr/src/uts/common/fs/zfs/spa.c
6853
mutex_exit(&vd->vdev_trim_lock);
usr/src/uts/common/fs/zfs/spa.c
6856
(vd->vdev_trim_state != VDEV_TRIM_ACTIVE &&
usr/src/uts/common/fs/zfs/spa.c
6857
vd->vdev_trim_state != VDEV_TRIM_SUSPENDED)) {
usr/src/uts/common/fs/zfs/spa.c
6858
mutex_exit(&vd->vdev_trim_lock);
usr/src/uts/common/fs/zfs/spa.c
6861
vd->vdev_trim_state != VDEV_TRIM_ACTIVE) {
usr/src/uts/common/fs/zfs/spa.c
6862
mutex_exit(&vd->vdev_trim_lock);
usr/src/uts/common/fs/zfs/spa.c
6868
vdev_trim(vd, rate, partial, secure);
usr/src/uts/common/fs/zfs/spa.c
6871
vdev_trim_stop(vd, VDEV_TRIM_CANCELED, vd_list);
usr/src/uts/common/fs/zfs/spa.c
6874
vdev_trim_stop(vd, VDEV_TRIM_SUSPENDED, vd_list);
usr/src/uts/common/fs/zfs/spa.c
6879
mutex_exit(&vd->vdev_trim_lock);
usr/src/uts/common/fs/zfs/spa.c
6992
vdev_t *vd = rvd->vdev_child[c];
usr/src/uts/common/fs/zfs/spa.c
6995
if (vd->vdev_islog || !vdev_is_concrete(vd)) {
usr/src/uts/common/fs/zfs/spa.c
7283
spa_vdev_resilver_done_hunt(vdev_t *vd)
usr/src/uts/common/fs/zfs/spa.c
7287
for (int c = 0; c < vd->vdev_children; c++) {
usr/src/uts/common/fs/zfs/spa.c
7288
oldvd = spa_vdev_resilver_done_hunt(vd->vdev_child[c]);
usr/src/uts/common/fs/zfs/spa.c
7301
if (vd->vdev_ops == &vdev_replacing_ops) {
usr/src/uts/common/fs/zfs/spa.c
7302
ASSERT(vd->vdev_children > 1);
usr/src/uts/common/fs/zfs/spa.c
7304
newvd = vd->vdev_child[vd->vdev_children - 1];
usr/src/uts/common/fs/zfs/spa.c
7305
oldvd = vd->vdev_child[0];
usr/src/uts/common/fs/zfs/spa.c
7317
if (vd->vdev_ops == &vdev_spare_ops) {
usr/src/uts/common/fs/zfs/spa.c
7318
vdev_t *first = vd->vdev_child[0];
usr/src/uts/common/fs/zfs/spa.c
7319
vdev_t *last = vd->vdev_child[vd->vdev_children - 1];
usr/src/uts/common/fs/zfs/spa.c
7337
vdev_propagate_state(vd);
usr/src/uts/common/fs/zfs/spa.c
7346
if (vd->vdev_children > 2) {
usr/src/uts/common/fs/zfs/spa.c
7347
newvd = vd->vdev_child[1];
usr/src/uts/common/fs/zfs/spa.c
7363
vdev_t *vd, *pvd, *ppvd;
usr/src/uts/common/fs/zfs/spa.c
7368
while ((vd = spa_vdev_resilver_done_hunt(spa->spa_root_vdev)) != NULL) {
usr/src/uts/common/fs/zfs/spa.c
7369
pvd = vd->vdev_parent;
usr/src/uts/common/fs/zfs/spa.c
7371
guid = vd->vdev_guid;
usr/src/uts/common/fs/zfs/spa.c
7385
ASSERT(vd->vdev_resilver_txg == 0 || !vdev_dtl_required(vd));
usr/src/uts/common/fs/zfs/spa.c
7405
vdev_t *vd;
usr/src/uts/common/fs/zfs/spa.c
7412
if ((vd = spa_lookup_by_guid(spa, guid, B_TRUE)) == NULL)
usr/src/uts/common/fs/zfs/spa.c
7415
if (!vd->vdev_ops->vdev_op_leaf)
usr/src/uts/common/fs/zfs/spa.c
7419
if (strcmp(value, vd->vdev_path) != 0) {
usr/src/uts/common/fs/zfs/spa.c
7420
spa_strfree(vd->vdev_path);
usr/src/uts/common/fs/zfs/spa.c
7421
vd->vdev_path = spa_strdup(value);
usr/src/uts/common/fs/zfs/spa.c
7425
if (vd->vdev_fru == NULL) {
usr/src/uts/common/fs/zfs/spa.c
7426
vd->vdev_fru = spa_strdup(value);
usr/src/uts/common/fs/zfs/spa.c
7428
} else if (strcmp(value, vd->vdev_fru) != 0) {
usr/src/uts/common/fs/zfs/spa.c
7429
spa_strfree(vd->vdev_fru);
usr/src/uts/common/fs/zfs/spa.c
7430
vd->vdev_fru = spa_strdup(value);
usr/src/uts/common/fs/zfs/spa.c
7435
return (spa_vdev_state_exit(spa, sync ? vd : NULL, 0));
usr/src/uts/common/fs/zfs/spa.c
7507
spa_async_remove(spa_t *spa, vdev_t *vd)
usr/src/uts/common/fs/zfs/spa.c
7509
if (vd->vdev_remove_wanted) {
usr/src/uts/common/fs/zfs/spa.c
7510
vd->vdev_remove_wanted = B_FALSE;
usr/src/uts/common/fs/zfs/spa.c
7511
vd->vdev_delayed_close = B_FALSE;
usr/src/uts/common/fs/zfs/spa.c
7512
vdev_set_state(vd, B_FALSE, VDEV_STATE_REMOVED, VDEV_AUX_NONE);
usr/src/uts/common/fs/zfs/spa.c
7520
vd->vdev_stat.vs_read_errors = 0;
usr/src/uts/common/fs/zfs/spa.c
7521
vd->vdev_stat.vs_write_errors = 0;
usr/src/uts/common/fs/zfs/spa.c
7522
vd->vdev_stat.vs_checksum_errors = 0;
usr/src/uts/common/fs/zfs/spa.c
7524
vdev_state_dirty(vd->vdev_top);
usr/src/uts/common/fs/zfs/spa.c
7527
for (int c = 0; c < vd->vdev_children; c++)
usr/src/uts/common/fs/zfs/spa.c
7528
spa_async_remove(spa, vd->vdev_child[c]);
usr/src/uts/common/fs/zfs/spa.c
7532
spa_async_probe(spa_t *spa, vdev_t *vd)
usr/src/uts/common/fs/zfs/spa.c
7534
if (vd->vdev_probe_wanted) {
usr/src/uts/common/fs/zfs/spa.c
7535
vd->vdev_probe_wanted = B_FALSE;
usr/src/uts/common/fs/zfs/spa.c
7536
vdev_reopen(vd); /* vdev_open() does the actual probe */
usr/src/uts/common/fs/zfs/spa.c
7539
for (int c = 0; c < vd->vdev_children; c++)
usr/src/uts/common/fs/zfs/spa.c
7540
spa_async_probe(spa, vd->vdev_child[c]);
usr/src/uts/common/fs/zfs/spa.c
7544
spa_async_autoexpand(spa_t *spa, vdev_t *vd)
usr/src/uts/common/fs/zfs/spa.c
7551
for (int c = 0; c < vd->vdev_children; c++) {
usr/src/uts/common/fs/zfs/spa.c
7552
vdev_t *cvd = vd->vdev_child[c];
usr/src/uts/common/fs/zfs/spa.c
7556
if (!vd->vdev_ops->vdev_op_leaf || vd->vdev_physpath == NULL)
usr/src/uts/common/fs/zfs/spa.c
7560
(void) snprintf(physpath, MAXPATHLEN, "/devices%s", vd->vdev_physpath);
usr/src/uts/common/fs/zfs/spa.c
7933
spa_avz_build(vdev_t *vd, uint64_t avz, dmu_tx_t *tx)
usr/src/uts/common/fs/zfs/spa.c
7935
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/spa.c
7936
if (vd->vdev_top_zap != 0) {
usr/src/uts/common/fs/zfs/spa.c
7938
vd->vdev_top_zap, tx));
usr/src/uts/common/fs/zfs/spa.c
7940
if (vd->vdev_leaf_zap != 0) {
usr/src/uts/common/fs/zfs/spa.c
7942
vd->vdev_leaf_zap, tx));
usr/src/uts/common/fs/zfs/spa.c
7944
for (uint64_t i = 0; i < vd->vdev_children; i++) {
usr/src/uts/common/fs/zfs/spa.c
7945
spa_avz_build(vd->vdev_child[i], avz, tx);
usr/src/uts/common/fs/zfs/spa.c
8308
vdev_indirect_state_sync_verify(vdev_t *vd)
usr/src/uts/common/fs/zfs/spa.c
8310
vdev_indirect_mapping_t *vim = vd->vdev_indirect_mapping;
usr/src/uts/common/fs/zfs/spa.c
8311
vdev_indirect_births_t *vib = vd->vdev_indirect_births;
usr/src/uts/common/fs/zfs/spa.c
8313
if (vd->vdev_ops == &vdev_indirect_ops) {
usr/src/uts/common/fs/zfs/spa.c
8318
if (vdev_obsolete_sm_object(vd) != 0) {
usr/src/uts/common/fs/zfs/spa.c
8319
ASSERT(vd->vdev_obsolete_sm != NULL);
usr/src/uts/common/fs/zfs/spa.c
8320
ASSERT(vd->vdev_removing ||
usr/src/uts/common/fs/zfs/spa.c
8321
vd->vdev_ops == &vdev_indirect_ops);
usr/src/uts/common/fs/zfs/spa.c
8325
ASSERT3U(vdev_obsolete_sm_object(vd), ==,
usr/src/uts/common/fs/zfs/spa.c
8326
space_map_object(vd->vdev_obsolete_sm));
usr/src/uts/common/fs/zfs/spa.c
8328
space_map_allocated(vd->vdev_obsolete_sm));
usr/src/uts/common/fs/zfs/spa.c
8330
ASSERT(vd->vdev_obsolete_segments != NULL);
usr/src/uts/common/fs/zfs/spa.c
8337
ASSERT0(range_tree_space(vd->vdev_obsolete_segments));
usr/src/uts/common/fs/zfs/spa.c
8406
vdev_t *vd = rvd->vdev_child[c];
usr/src/uts/common/fs/zfs/spa.c
8407
vdev_indirect_state_sync_verify(vd);
usr/src/uts/common/fs/zfs/spa.c
8409
if (vdev_indirect_should_condense(vd)) {
usr/src/uts/common/fs/zfs/spa.c
8410
spa_condense_indirect_start_sync(vd, tx);
usr/src/uts/common/fs/zfs/spa.c
8461
vdev_t *vd = NULL;
usr/src/uts/common/fs/zfs/spa.c
8462
while ((vd = txg_list_remove(&spa->spa_vdev_txg_list, txg))
usr/src/uts/common/fs/zfs/spa.c
8464
vdev_sync(vd, txg);
usr/src/uts/common/fs/zfs/spa.c
8525
vdev_t *vd =
usr/src/uts/common/fs/zfs/spa.c
8529
if (c > 0 && svd[0] == vd)
usr/src/uts/common/fs/zfs/spa.c
8532
if (vd->vdev_ms_array == 0 ||
usr/src/uts/common/fs/zfs/spa.c
8533
vd->vdev_islog ||
usr/src/uts/common/fs/zfs/spa.c
8534
!vdev_is_concrete(vd))
usr/src/uts/common/fs/zfs/spa.c
8537
svd[svdcount++] = vd;
usr/src/uts/common/fs/zfs/spa.c
8566
vdev_t *vd = NULL;
usr/src/uts/common/fs/zfs/spa.c
8607
while ((vd = list_head(&spa->spa_state_dirty_list)) != NULL) {
usr/src/uts/common/fs/zfs/spa.c
8608
vdev_state_clean(vd);
usr/src/uts/common/fs/zfs/spa.c
8609
vdev_config_dirty(vd);
usr/src/uts/common/fs/zfs/spa.c
8633
vd = rvd->vdev_child[i];
usr/src/uts/common/fs/zfs/spa.c
8634
if (vd->vdev_deflate_ratio != SPA_MINBLOCKSIZE)
usr/src/uts/common/fs/zfs/spa.c
8680
while ((vd = list_head(&spa->spa_config_dirty_list)) != NULL)
usr/src/uts/common/fs/zfs/spa.c
8681
vdev_config_clean(vd);
usr/src/uts/common/fs/zfs/spa.c
8704
while ((vd = txg_list_remove(&spa->spa_vdev_txg_list, TXG_CLEAN(txg)))
usr/src/uts/common/fs/zfs/spa.c
8706
vdev_sync_done(vd, txg);
usr/src/uts/common/fs/zfs/spa.c
8819
vdev_t *vd;
usr/src/uts/common/fs/zfs/spa.c
8822
if ((vd = vdev_lookup_by_guid(spa->spa_root_vdev, guid)) != NULL)
usr/src/uts/common/fs/zfs/spa.c
8823
return (vd);
usr/src/uts/common/fs/zfs/spa.c
8827
vd = spa->spa_l2cache.sav_vdevs[i];
usr/src/uts/common/fs/zfs/spa.c
8828
if (vd->vdev_guid == guid)
usr/src/uts/common/fs/zfs/spa.c
8829
return (vd);
usr/src/uts/common/fs/zfs/spa.c
8833
vd = spa->spa_spares.sav_vdevs[i];
usr/src/uts/common/fs/zfs/spa.c
8834
if (vd->vdev_guid == guid)
usr/src/uts/common/fs/zfs/spa.c
8835
return (vd);
usr/src/uts/common/fs/zfs/spa.c
8913
vdev_t *vd = rvd->vdev_child[c];
usr/src/uts/common/fs/zfs/spa.c
8914
if (!vdev_is_concrete(vd))
usr/src/uts/common/fs/zfs/spa.c
8916
m += vd->vdev_ms_count;
usr/src/uts/common/fs/zfs/spa.c
8922
spa_event_create(spa_t *spa, vdev_t *vd, nvlist_t *hist_nvl, const char *name)
usr/src/uts/common/fs/zfs/spa.c
8943
if (vd) {
usr/src/uts/common/fs/zfs/spa.c
8945
value.value.sv_uint64 = vd->vdev_guid;
usr/src/uts/common/fs/zfs/spa.c
8950
if (vd->vdev_path) {
usr/src/uts/common/fs/zfs/spa.c
8952
value.value.sv_string = vd->vdev_path;
usr/src/uts/common/fs/zfs/spa.c
9002
spa_event_notify(spa_t *spa, vdev_t *vd, nvlist_t *hist_nvl, const char *name)
usr/src/uts/common/fs/zfs/spa.c
9004
spa_event_post(spa_event_create(spa, vd, hist_nvl, name));
usr/src/uts/common/fs/zfs/spa_checkpoint.c
209
vdev_t *vd = sdc->sdc_vd;
usr/src/uts/common/fs/zfs/spa_checkpoint.c
210
metaslab_t *ms = vd->vdev_ms[sme->sme_offset >> vd->vdev_ms_shift];
usr/src/uts/common/fs/zfs/spa_checkpoint.c
238
vdev_dirty(vd, VDD_METASLAB, ms, sdc->sdc_txg);
usr/src/uts/common/fs/zfs/spa_checkpoint.c
242
ASSERT3U(vd->vdev_spa->spa_checkpoint_info.sci_dspace, >=,
usr/src/uts/common/fs/zfs/spa_checkpoint.c
244
ASSERT3U(vd->vdev_stat.vs_checkpoint_space, >=, sme->sme_run);
usr/src/uts/common/fs/zfs/spa_checkpoint.c
246
vd->vdev_spa->spa_checkpoint_info.sci_dspace -= sme->sme_run;
usr/src/uts/common/fs/zfs/spa_checkpoint.c
247
vd->vdev_stat.vs_checkpoint_space -= sme->sme_run;
usr/src/uts/common/fs/zfs/spa_checkpoint.c
261
vdev_t *vd = rvd->vdev_child[c];
usr/src/uts/common/fs/zfs/spa_checkpoint.c
263
if (vd->vdev_checkpoint_sm != NULL) {
usr/src/uts/common/fs/zfs/spa_checkpoint.c
265
-space_map_allocated(vd->vdev_checkpoint_sm);
usr/src/uts/common/fs/zfs/spa_checkpoint.c
267
vd->vdev_stat.vs_checkpoint_space;
usr/src/uts/common/fs/zfs/spa_checkpoint.c
271
ASSERT0(vd->vdev_stat.vs_checkpoint_space);
usr/src/uts/common/fs/zfs/spa_checkpoint.c
280
vdev_t *vd = arg;
usr/src/uts/common/fs/zfs/spa_checkpoint.c
320
sdc.sdc_vd = vd;
usr/src/uts/common/fs/zfs/spa_checkpoint.c
325
space_map_length(vd->vdev_checkpoint_sm) / sizeof (uint64_t);
usr/src/uts/common/fs/zfs/spa_checkpoint.c
327
error = space_map_incremental_destroy(vd->vdev_checkpoint_sm,
usr/src/uts/common/fs/zfs/spa_checkpoint.c
331
space_map_length(vd->vdev_checkpoint_sm) / sizeof (uint64_t);
usr/src/uts/common/fs/zfs/spa_checkpoint.c
334
spa_checkpoint_accounting_verify(vd->vdev_spa);
usr/src/uts/common/fs/zfs/spa_checkpoint.c
339
tx->tx_txg, vd->vdev_id, (words_before - words_after),
usr/src/uts/common/fs/zfs/spa_checkpoint.c
347
error, vd->vdev_id);
usr/src/uts/common/fs/zfs/spa_checkpoint.c
350
ASSERT0(space_map_allocated(vd->vdev_checkpoint_sm));
usr/src/uts/common/fs/zfs/spa_checkpoint.c
351
ASSERT0(space_map_length(vd->vdev_checkpoint_sm));
usr/src/uts/common/fs/zfs/spa_checkpoint.c
353
space_map_free(vd->vdev_checkpoint_sm, tx);
usr/src/uts/common/fs/zfs/spa_checkpoint.c
354
space_map_close(vd->vdev_checkpoint_sm);
usr/src/uts/common/fs/zfs/spa_checkpoint.c
355
vd->vdev_checkpoint_sm = NULL;
usr/src/uts/common/fs/zfs/spa_checkpoint.c
357
VERIFY0(zap_remove(spa_meta_objset(vd->vdev_spa),
usr/src/uts/common/fs/zfs/spa_checkpoint.c
358
vd->vdev_top_zap, VDEV_TOP_ZAP_POOL_CHECKPOINT_SM, tx));
usr/src/uts/common/fs/zfs/spa_checkpoint.c
401
vdev_t *vd = rvd->vdev_child[c];
usr/src/uts/common/fs/zfs/spa_checkpoint.c
403
while (vd->vdev_checkpoint_sm != NULL) {
usr/src/uts/common/fs/zfs/spa_checkpoint.c
404
space_map_t *checkpoint_sm = vd->vdev_checkpoint_sm;
usr/src/uts/common/fs/zfs/spa_checkpoint.c
411
ASSERT3P(vd->vdev_ops, !=, &vdev_indirect_ops);
usr/src/uts/common/fs/zfs/spa_checkpoint.c
430
error, vd->vdev_id);
usr/src/uts/common/fs/zfs/spa_checkpoint.c
434
spa_checkpoint_discard_thread_sync, vd,
usr/src/uts/common/fs/zfs/spa_config.c
364
spa_config_generate(spa_t *spa, vdev_t *vd, uint64_t txg, int getstats)
usr/src/uts/common/fs/zfs/spa_config.c
373
if (vd == NULL) {
usr/src/uts/common/fs/zfs/spa_config.c
374
vd = rvd;
usr/src/uts/common/fs/zfs/spa_config.c
425
if (vd != rvd) {
usr/src/uts/common/fs/zfs/spa_config.c
427
vd->vdev_top->vdev_guid);
usr/src/uts/common/fs/zfs/spa_config.c
429
vd->vdev_guid);
usr/src/uts/common/fs/zfs/spa_config.c
430
if (vd->vdev_isspare) {
usr/src/uts/common/fs/zfs/spa_config.c
434
if (vd->vdev_islog) {
usr/src/uts/common/fs/zfs/spa_config.c
438
vd = vd->vdev_top; /* label contains top config */
usr/src/uts/common/fs/zfs/spa_config.c
469
nvroot = vdev_config_generate(spa, vd, getstats, config_gen_flags);
usr/src/uts/common/fs/zfs/spa_log_spacemap.c
1064
vdev_t *vd = vdev_lookup_top(spa, vdev_id);
usr/src/uts/common/fs/zfs/spa_log_spacemap.c
1071
if (!vdev_is_concrete(vd))
usr/src/uts/common/fs/zfs/spa_log_spacemap.c
1074
metaslab_t *ms = vd->vdev_ms[offset >> vd->vdev_ms_shift];
usr/src/uts/common/fs/zfs/spa_log_spacemap.c
1181
vdev_t *vd = m->ms_group->mg_vd;
usr/src/uts/common/fs/zfs/spa_log_spacemap.c
1182
metaslab_space_update(vd, m->ms_group->mg_class,
usr/src/uts/common/fs/zfs/spa_log_spacemap.c
1184
metaslab_space_update(vd, m->ms_group->mg_class,
usr/src/uts/common/fs/zfs/spa_log_spacemap.c
1204
spa_ld_unflushed_txgs(vdev_t *vd)
usr/src/uts/common/fs/zfs/spa_log_spacemap.c
1206
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/spa_log_spacemap.c
1209
if (vd->vdev_top_zap == 0)
usr/src/uts/common/fs/zfs/spa_log_spacemap.c
1213
int error = zap_lookup(mos, vd->vdev_top_zap,
usr/src/uts/common/fs/zfs/spa_log_spacemap.c
1221
(u_longlong_t)vd->vdev_top_zap, error);
usr/src/uts/common/fs/zfs/spa_log_spacemap.c
1225
for (uint64_t m = 0; m < vd->vdev_ms_count; m++) {
usr/src/uts/common/fs/zfs/spa_log_spacemap.c
1226
metaslab_t *ms = vd->vdev_ms[m];
usr/src/uts/common/fs/zfs/spa_log_spacemap.c
1266
vdev_t *vd = spa->spa_root_vdev->vdev_child[c];
usr/src/uts/common/fs/zfs/spa_log_spacemap.c
1267
error = spa_ld_unflushed_txgs(vd);
usr/src/uts/common/fs/zfs/spa_misc.c
1030
spa_aux_activate(vdev_t *vd, avl_tree_t *avl)
usr/src/uts/common/fs/zfs/spa_misc.c
1035
search.aux_guid = vd->vdev_guid;
usr/src/uts/common/fs/zfs/spa_misc.c
1040
found->aux_pool = spa_guid(vd->vdev_spa);
usr/src/uts/common/fs/zfs/spa_misc.c
1078
vdev_t *vd = spa->spa_spares.sav_vdevs[i];
usr/src/uts/common/fs/zfs/spa_misc.c
1080
search.aux_guid = vd->vdev_guid;
usr/src/uts/common/fs/zfs/spa_misc.c
1091
vd->vdev_probe_wanted = B_TRUE;
usr/src/uts/common/fs/zfs/spa_misc.c
1107
spa_spare_add(vdev_t *vd)
usr/src/uts/common/fs/zfs/spa_misc.c
1110
ASSERT(!vd->vdev_isspare);
usr/src/uts/common/fs/zfs/spa_misc.c
1111
spa_aux_add(vd, &spa_spare_avl);
usr/src/uts/common/fs/zfs/spa_misc.c
1112
vd->vdev_isspare = B_TRUE;
usr/src/uts/common/fs/zfs/spa_misc.c
1117
spa_spare_remove(vdev_t *vd)
usr/src/uts/common/fs/zfs/spa_misc.c
1120
ASSERT(vd->vdev_isspare);
usr/src/uts/common/fs/zfs/spa_misc.c
1121
spa_aux_remove(vd, &spa_spare_avl);
usr/src/uts/common/fs/zfs/spa_misc.c
1122
vd->vdev_isspare = B_FALSE;
usr/src/uts/common/fs/zfs/spa_misc.c
1139
spa_spare_activate(vdev_t *vd)
usr/src/uts/common/fs/zfs/spa_misc.c
1142
ASSERT(vd->vdev_isspare);
usr/src/uts/common/fs/zfs/spa_misc.c
1143
spa_aux_activate(vd, &spa_spare_avl);
usr/src/uts/common/fs/zfs/spa_misc.c
1160
spa_l2cache_add(vdev_t *vd)
usr/src/uts/common/fs/zfs/spa_misc.c
1163
ASSERT(!vd->vdev_isl2cache);
usr/src/uts/common/fs/zfs/spa_misc.c
1164
spa_aux_add(vd, &spa_l2cache_avl);
usr/src/uts/common/fs/zfs/spa_misc.c
1165
vd->vdev_isl2cache = B_TRUE;
usr/src/uts/common/fs/zfs/spa_misc.c
1170
spa_l2cache_remove(vdev_t *vd)
usr/src/uts/common/fs/zfs/spa_misc.c
1173
ASSERT(vd->vdev_isl2cache);
usr/src/uts/common/fs/zfs/spa_misc.c
1174
spa_aux_remove(vd, &spa_l2cache_avl);
usr/src/uts/common/fs/zfs/spa_misc.c
1175
vd->vdev_isl2cache = B_FALSE;
usr/src/uts/common/fs/zfs/spa_misc.c
1192
spa_l2cache_activate(vdev_t *vd)
usr/src/uts/common/fs/zfs/spa_misc.c
1195
ASSERT(vd->vdev_isl2cache);
usr/src/uts/common/fs/zfs/spa_misc.c
1196
spa_aux_activate(vd, &spa_l2cache_avl);
usr/src/uts/common/fs/zfs/spa_misc.c
1242
spa_vdev_config_exit(spa_t *spa, vdev_t *vd, uint64_t txg, int error, char *tag)
usr/src/uts/common/fs/zfs/spa_misc.c
1288
if (vd != NULL) {
usr/src/uts/common/fs/zfs/spa_misc.c
1289
ASSERT(!vd->vdev_detached || vd->vdev_dtl_sm == NULL);
usr/src/uts/common/fs/zfs/spa_misc.c
1290
if (vd->vdev_ops->vdev_op_leaf) {
usr/src/uts/common/fs/zfs/spa_misc.c
1291
mutex_enter(&vd->vdev_initialize_lock);
usr/src/uts/common/fs/zfs/spa_misc.c
1292
vdev_initialize_stop(vd, VDEV_INITIALIZE_CANCELED,
usr/src/uts/common/fs/zfs/spa_misc.c
1294
mutex_exit(&vd->vdev_initialize_lock);
usr/src/uts/common/fs/zfs/spa_misc.c
1296
mutex_enter(&vd->vdev_trim_lock);
usr/src/uts/common/fs/zfs/spa_misc.c
1297
vdev_trim_stop(vd, VDEV_TRIM_CANCELED, NULL);
usr/src/uts/common/fs/zfs/spa_misc.c
1298
mutex_exit(&vd->vdev_trim_lock);
usr/src/uts/common/fs/zfs/spa_misc.c
1304
vdev_autotrim_stop_wait(vd);
usr/src/uts/common/fs/zfs/spa_misc.c
1307
vdev_free(vd);
usr/src/uts/common/fs/zfs/spa_misc.c
1325
spa_vdev_exit(spa_t *spa, vdev_t *vd, uint64_t txg, int error)
usr/src/uts/common/fs/zfs/spa_misc.c
1329
spa_vdev_config_exit(spa, vd, txg, error, FTAG);
usr/src/uts/common/fs/zfs/spa_misc.c
1367
spa_vdev_state_exit(spa_t *spa, vdev_t *vd, int error)
usr/src/uts/common/fs/zfs/spa_misc.c
1371
if (vd != NULL || error == 0)
usr/src/uts/common/fs/zfs/spa_misc.c
1372
vdev_dtl_reassess(vd ? vd->vdev_top : spa->spa_root_vdev,
usr/src/uts/common/fs/zfs/spa_misc.c
1375
if (vd != NULL) {
usr/src/uts/common/fs/zfs/spa_misc.c
1376
vdev_state_dirty(vd->vdev_top);
usr/src/uts/common/fs/zfs/spa_misc.c
1393
if (vd != NULL)
usr/src/uts/common/fs/zfs/spa_misc.c
1835
vdev_t *vd =
usr/src/uts/common/fs/zfs/spa_misc.c
1838
vd->vdev_stat.vs_dspace : vd->vdev_stat.vs_space;
usr/src/uts/common/fs/zfs/spa_misc.c
2024
vdev_t *vd = vdev_lookup_top(spa, DVA_GET_VDEV(dva));
usr/src/uts/common/fs/zfs/spa_misc.c
2025
dsize = (asize >> SPA_MINBLOCKSHIFT) * vd->vdev_deflate_ratio;
usr/src/uts/common/fs/zfs/spa_misc.c
2502
vdev_t *vd = vdev_lookup_top(spa, vdevid);
usr/src/uts/common/fs/zfs/spa_misc.c
2503
vdev_indirect_births_t *vib = vd->vdev_indirect_births;
usr/src/uts/common/fs/zfs/spa_misc.c
2505
ASSERT3P(vd->vdev_ops, ==, &vdev_indirect_ops);
usr/src/uts/common/fs/zfs/spa_misc.c
2515
vdevid = vd->vdev_indirect_config.vic_prev_indirect_vdev;
usr/src/uts/common/fs/zfs/spa_misc.c
967
spa_aux_add(vdev_t *vd, avl_tree_t *avl)
usr/src/uts/common/fs/zfs/spa_misc.c
973
search.aux_guid = vd->vdev_guid;
usr/src/uts/common/fs/zfs/spa_misc.c
978
aux->aux_guid = vd->vdev_guid;
usr/src/uts/common/fs/zfs/spa_misc.c
985
spa_aux_remove(vdev_t *vd, avl_tree_t *avl)
usr/src/uts/common/fs/zfs/spa_misc.c
991
search.aux_guid = vd->vdev_guid;
usr/src/uts/common/fs/zfs/spa_misc.c
999
} else if (aux->aux_pool == spa_guid(vd->vdev_spa)) {
usr/src/uts/common/fs/zfs/sys/arc.h
260
void l2arc_add_vdev(spa_t *spa, vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/arc.h
261
void l2arc_remove_vdev(vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/arc.h
262
boolean_t l2arc_vdev_present(vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/arc.h
263
void l2arc_rebuild_vdev(vdev_t *vd, boolean_t reopen);
usr/src/uts/common/fs/zfs/sys/dsl_scan.h
167
void dsl_scan_assess_vdev(struct dsl_pool *dp, vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/spa.h
1030
extern int zfs_ereport_post(const char *class, spa_t *spa, vdev_t *vd,
usr/src/uts/common/fs/zfs/sys/spa.h
1033
extern boolean_t zfs_ereport_is_valid(const char *class, spa_t *spa, vdev_t *vd,
usr/src/uts/common/fs/zfs/sys/spa.h
1035
extern void zfs_post_remove(spa_t *spa, vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/spa.h
1036
extern void zfs_post_state_change(spa_t *spa, vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/spa.h
1037
extern void zfs_post_autoreplace(spa_t *spa, vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/spa.h
1067
extern sysevent_t *spa_event_create(spa_t *spa, vdev_t *vd, nvlist_t *hist_nvl,
usr/src/uts/common/fs/zfs/sys/spa.h
785
extern void spa_spare_add(vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/spa.h
786
extern void spa_spare_remove(vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/spa.h
788
extern void spa_spare_activate(vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/spa.h
794
extern void spa_l2cache_add(vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/spa.h
795
extern void spa_l2cache_remove(vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/spa.h
797
extern void spa_l2cache_activate(vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/spa.h
823
extern nvlist_t *spa_config_generate(spa_t *spa, vdev_t *vd, uint64_t txg,
usr/src/uts/common/fs/zfs/sys/spa.h
886
extern void spa_vdev_config_exit(spa_t *spa, vdev_t *vd, uint64_t txg,
usr/src/uts/common/fs/zfs/sys/spa.h
888
extern int spa_vdev_exit(spa_t *spa, vdev_t *vd, uint64_t txg, int error);
usr/src/uts/common/fs/zfs/sys/spa.h
892
extern int spa_vdev_state_exit(spa_t *spa, vdev_t *vd, int error);
usr/src/uts/common/fs/zfs/sys/vdev.h
100
extern void vdev_xlate(vdev_t *vd, const range_seg64_t *logical_rs,
usr/src/uts/common/fs/zfs/sys/vdev.h
103
extern void vdev_get_stats_ex(vdev_t *vd, vdev_stat_t *vs, vdev_stat_ex_t *vsx);
usr/src/uts/common/fs/zfs/sys/vdev.h
104
extern void vdev_get_stats(vdev_t *vd, vdev_stat_t *vs);
usr/src/uts/common/fs/zfs/sys/vdev.h
105
extern void vdev_clear_stats(vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/vdev.h
107
extern void vdev_scan_stat_init(vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/vdev.h
108
extern void vdev_propagate_state(vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/vdev.h
109
extern void vdev_set_state(vdev_t *vd, boolean_t isopen, vdev_state_t state,
usr/src/uts/common/fs/zfs/sys/vdev.h
111
extern boolean_t vdev_children_are_offline(vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/vdev.h
113
extern void vdev_space_update(vdev_t *vd,
usr/src/uts/common/fs/zfs/sys/vdev.h
116
extern int64_t vdev_deflated_space(vdev_t *vd, int64_t space);
usr/src/uts/common/fs/zfs/sys/vdev.h
118
extern uint64_t vdev_psize_to_asize(vdev_t *vd, uint64_t psize);
usr/src/uts/common/fs/zfs/sys/vdev.h
125
extern void vdev_clear(spa_t *spa, vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/vdev.h
127
extern boolean_t vdev_is_dead(vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/vdev.h
128
extern boolean_t vdev_readable(vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/vdev.h
129
extern boolean_t vdev_writeable(vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/vdev.h
130
extern boolean_t vdev_allocatable(vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/vdev.h
131
extern boolean_t vdev_accessible(vdev_t *vd, zio_t *zio);
usr/src/uts/common/fs/zfs/sys/vdev.h
132
extern boolean_t vdev_is_spacemap_addressable(vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/vdev.h
134
extern void vdev_cache_init(vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/vdev.h
135
extern void vdev_cache_fini(vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/vdev.h
138
extern void vdev_cache_purge(vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/vdev.h
140
extern void vdev_queue_init(vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/vdev.h
141
extern void vdev_queue_fini(vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/vdev.h
146
extern int vdev_queue_length(vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/vdev.h
147
extern uint64_t vdev_queue_last_offset(vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/vdev.h
149
extern void vdev_config_dirty(vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/vdev.h
150
extern void vdev_config_clean(vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/vdev.h
153
extern void vdev_state_dirty(vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/vdev.h
154
extern void vdev_state_clean(vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/vdev.h
156
extern void vdev_set_deferred_resilver(spa_t *spa, vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/vdev.h
157
extern void vdev_defer_resilver(vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/vdev.h
158
extern boolean_t vdev_clear_resilver_deferred(vdev_t *vd, dmu_tx_t *tx);
usr/src/uts/common/fs/zfs/sys/vdev.h
169
extern nvlist_t *vdev_config_generate(spa_t *spa, vdev_t *vd,
usr/src/uts/common/fs/zfs/sys/vdev.h
178
extern nvlist_t *vdev_label_read_config(vdev_t *vd, uint64_t txg);
usr/src/uts/common/fs/zfs/sys/vdev.h
180
extern void vdev_config_generate_stats(vdev_t *vd, nvlist_t *nv);
usr/src/uts/common/fs/zfs/sys/vdev.h
181
extern void vdev_label_write(zio_t *zio, vdev_t *vd, int l, abd_t *buf, uint64_t
usr/src/uts/common/fs/zfs/sys/vdev.h
195
extern int vdev_label_init(vdev_t *vd, uint64_t txg, vdev_labeltype_t reason);
usr/src/uts/common/fs/zfs/sys/vdev.h
52
extern void vdev_dbgmsg(vdev_t *vd, const char *fmt, ...);
usr/src/uts/common/fs/zfs/sys/vdev.h
63
extern int vdev_validate_aux(vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/vdev.h
64
extern zio_t *vdev_probe(vdev_t *vd, zio_t *pio);
usr/src/uts/common/fs/zfs/sys/vdev.h
65
extern boolean_t vdev_is_concrete(vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/vdev.h
66
extern boolean_t vdev_is_bootable(vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/vdev.h
68
extern vdev_t *vdev_lookup_by_guid(vdev_t *vd, uint64_t guid);
usr/src/uts/common/fs/zfs/sys/vdev.h
70
extern void vdev_dtl_dirty(vdev_t *vd, vdev_dtl_type_t d,
usr/src/uts/common/fs/zfs/sys/vdev.h
72
extern boolean_t vdev_dtl_contains(vdev_t *vd, vdev_dtl_type_t d,
usr/src/uts/common/fs/zfs/sys/vdev.h
74
extern boolean_t vdev_dtl_empty(vdev_t *vd, vdev_dtl_type_t d);
usr/src/uts/common/fs/zfs/sys/vdev.h
75
extern boolean_t vdev_dtl_need_resilver(vdev_t *vd, uint64_t off, size_t size);
usr/src/uts/common/fs/zfs/sys/vdev.h
76
extern void vdev_dtl_reassess(vdev_t *vd, uint64_t txg, uint64_t scrub_txg,
usr/src/uts/common/fs/zfs/sys/vdev.h
78
extern boolean_t vdev_dtl_required(vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/vdev.h
79
extern boolean_t vdev_resilver_needed(vdev_t *vd,
usr/src/uts/common/fs/zfs/sys/vdev.h
81
extern void vdev_destroy_unlink_zap(vdev_t *vd, uint64_t zapobj,
usr/src/uts/common/fs/zfs/sys/vdev.h
83
extern uint64_t vdev_create_link_zap(vdev_t *vd, dmu_tx_t *tx);
usr/src/uts/common/fs/zfs/sys/vdev.h
84
extern void vdev_construct_zaps(vdev_t *vd, dmu_tx_t *tx);
usr/src/uts/common/fs/zfs/sys/vdev.h
85
extern void vdev_destroy_spacemaps(vdev_t *vd, dmu_tx_t *tx);
usr/src/uts/common/fs/zfs/sys/vdev.h
86
extern void vdev_indirect_mark_obsolete(vdev_t *vd, uint64_t offset,
usr/src/uts/common/fs/zfs/sys/vdev.h
94
extern int vdev_metaslab_init(vdev_t *vd, uint64_t txg);
usr/src/uts/common/fs/zfs/sys/vdev.h
95
extern void vdev_metaslab_fini(vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/vdev.h
97
extern void vdev_expand(vdev_t *vd, uint64_t txg);
usr/src/uts/common/fs/zfs/sys/vdev.h
98
extern void vdev_split(vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/vdev.h
99
extern void vdev_deadman(vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/vdev_impl.h
426
#define VDEV_UBERBLOCK_SHIFT(vd) \
usr/src/uts/common/fs/zfs/sys/vdev_impl.h
427
MIN(MAX((vd)->vdev_top->vdev_ashift, UBERBLOCK_SHIFT), \
usr/src/uts/common/fs/zfs/sys/vdev_impl.h
429
#define VDEV_UBERBLOCK_COUNT(vd) \
usr/src/uts/common/fs/zfs/sys/vdev_impl.h
430
(VDEV_UBERBLOCK_RING >> VDEV_UBERBLOCK_SHIFT(vd))
usr/src/uts/common/fs/zfs/sys/vdev_impl.h
431
#define VDEV_UBERBLOCK_OFFSET(vd, n) \
usr/src/uts/common/fs/zfs/sys/vdev_impl.h
432
offsetof(vdev_label_t, vl_uberblock[(n) << VDEV_UBERBLOCK_SHIFT(vd)])
usr/src/uts/common/fs/zfs/sys/vdev_impl.h
433
#define VDEV_UBERBLOCK_SIZE(vd) (1ULL << VDEV_UBERBLOCK_SHIFT(vd))
usr/src/uts/common/fs/zfs/sys/vdev_impl.h
513
extern void vdev_free(vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/vdev_impl.h
527
extern boolean_t vdev_log_state_valid(vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/vdev_impl.h
528
extern int vdev_load(vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/vdev_impl.h
529
extern int vdev_dtl_load(vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/vdev_impl.h
530
extern void vdev_sync(vdev_t *vd, uint64_t txg);
usr/src/uts/common/fs/zfs/sys/vdev_impl.h
531
extern void vdev_sync_done(vdev_t *vd, uint64_t txg);
usr/src/uts/common/fs/zfs/sys/vdev_impl.h
532
extern void vdev_dirty(vdev_t *vd, int flags, void *arg, uint64_t txg);
usr/src/uts/common/fs/zfs/sys/vdev_impl.h
533
extern void vdev_dirty_leaves(vdev_t *vd, int flags, uint64_t txg);
usr/src/uts/common/fs/zfs/sys/vdev_impl.h
552
extern void vdev_default_xlate(vdev_t *vd, const range_seg64_t *in,
usr/src/uts/common/fs/zfs/sys/vdev_impl.h
554
extern uint64_t vdev_default_asize(vdev_t *vd, uint64_t psize);
usr/src/uts/common/fs/zfs/sys/vdev_impl.h
555
extern uint64_t vdev_get_min_asize(vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/vdev_impl.h
556
extern void vdev_set_min_asize(vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/vdev_impl.h
568
extern void vdev_indirect_sync_obsolete(vdev_t *vd, dmu_tx_t *tx);
usr/src/uts/common/fs/zfs/sys/vdev_impl.h
569
extern boolean_t vdev_indirect_should_condense(vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/vdev_impl.h
570
extern void spa_condense_indirect_start_sync(vdev_t *vd, dmu_tx_t *tx);
usr/src/uts/common/fs/zfs/sys/vdev_impl.h
571
extern int vdev_obsolete_sm_object(vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/vdev_impl.h
572
extern boolean_t vdev_obsolete_counts_are_precise(vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/vdev_impl.h
577
int vdev_checkpoint_sm_object(vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/vdev_impl.h
71
typedef int vdev_open_func_t(vdev_t *vd, uint64_t *size, uint64_t *max_size,
usr/src/uts/common/fs/zfs/sys/vdev_impl.h
73
typedef void vdev_close_func_t(vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/vdev_impl.h
74
typedef uint64_t vdev_asize_func_t(vdev_t *vd, uint64_t psize);
usr/src/uts/common/fs/zfs/sys/vdev_impl.h
77
typedef void vdev_state_change_func_t(vdev_t *vd, int, int);
usr/src/uts/common/fs/zfs/sys/vdev_impl.h
78
typedef boolean_t vdev_need_resilver_func_t(vdev_t *vd, uint64_t, size_t);
usr/src/uts/common/fs/zfs/sys/vdev_impl.h
79
typedef void vdev_hold_func_t(vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/vdev_impl.h
80
typedef void vdev_rele_func_t(vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/vdev_impl.h
82
typedef void vdev_remap_cb_t(uint64_t inner_offset, vdev_t *vd,
usr/src/uts/common/fs/zfs/sys/vdev_impl.h
84
typedef void vdev_remap_func_t(vdev_t *vd, uint64_t offset, uint64_t size,
usr/src/uts/common/fs/zfs/sys/vdev_impl.h
86
typedef int vdev_dumpio_func_t(vdev_t *vd, caddr_t data, size_t size,
usr/src/uts/common/fs/zfs/sys/vdev_initialize.h
35
extern void vdev_initialize(vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/vdev_initialize.h
36
extern void vdev_initialize_stop(vdev_t *vd,
usr/src/uts/common/fs/zfs/sys/vdev_initialize.h
38
extern void vdev_initialize_stop_all(vdev_t *vd,
usr/src/uts/common/fs/zfs/sys/vdev_initialize.h
41
extern void vdev_initialize_restart(vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/vdev_trim.h
37
extern void vdev_trim(vdev_t *vd, uint64_t rate, boolean_t partial,
usr/src/uts/common/fs/zfs/sys/vdev_trim.h
39
extern void vdev_trim_stop(vdev_t *vd, vdev_trim_state_t tgt, list_t *vd_list);
usr/src/uts/common/fs/zfs/sys/vdev_trim.h
40
extern void vdev_trim_stop_all(vdev_t *vd, vdev_trim_state_t tgt_state);
usr/src/uts/common/fs/zfs/sys/vdev_trim.h
42
extern void vdev_trim_restart(vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/vdev_trim.h
45
extern void vdev_autotrim_stop_wait(vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/zio.h
509
extern zio_t *zio_null(zio_t *pio, spa_t *spa, vdev_t *vd,
usr/src/uts/common/fs/zfs/sys/zio.h
539
extern zio_t *zio_ioctl(zio_t *pio, spa_t *spa, vdev_t *vd, int cmd,
usr/src/uts/common/fs/zfs/sys/zio.h
542
extern zio_t *zio_trim(zio_t *pio, vdev_t *vd, uint64_t offset, uint64_t size,
usr/src/uts/common/fs/zfs/sys/zio.h
546
extern zio_t *zio_read_phys(zio_t *pio, vdev_t *vd, uint64_t offset,
usr/src/uts/common/fs/zfs/sys/zio.h
551
extern zio_t *zio_write_phys(zio_t *pio, vdev_t *vd, uint64_t offset,
usr/src/uts/common/fs/zfs/sys/zio.h
562
extern void zio_flush(zio_t *zio, vdev_t *vd);
usr/src/uts/common/fs/zfs/sys/zio.h
588
extern zio_t *zio_vdev_child_io(zio_t *zio, blkptr_t *bp, vdev_t *vd,
usr/src/uts/common/fs/zfs/sys/zio.h
593
extern zio_t *zio_vdev_delegated_io(vdev_t *vd, uint64_t offset,
usr/src/uts/common/fs/zfs/sys/zio.h
637
extern int zio_handle_device_injection(vdev_t *vd, zio_t *zio, int error);
usr/src/uts/common/fs/zfs/sys/zio.h
645
extern void zfs_ereport_start_checksum(spa_t *spa, vdev_t *vd,
usr/src/uts/common/fs/zfs/sys/zio.h
655
extern int zfs_ereport_post_checksum(spa_t *spa, vdev_t *vd,
usr/src/uts/common/fs/zfs/vdev.c
1045
while ((vd = txg_list_remove(&svd->vdev_dtl_list, t)) != NULL)
usr/src/uts/common/fs/zfs/vdev.c
1046
(void) txg_list_add(&tvd->vdev_dtl_list, vd, t);
usr/src/uts/common/fs/zfs/vdev.c
1071
vdev_top_update(vdev_t *tvd, vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev.c
1073
if (vd == NULL)
usr/src/uts/common/fs/zfs/vdev.c
1076
vd->vdev_top = tvd;
usr/src/uts/common/fs/zfs/vdev.c
1078
for (int c = 0; c < vd->vdev_children; c++)
usr/src/uts/common/fs/zfs/vdev.c
1079
vdev_top_update(tvd, vd->vdev_child[c]);
usr/src/uts/common/fs/zfs/vdev.c
1160
vdev_metaslab_group_create(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev.c
1162
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev.c
1167
if (vd->vdev_mg == NULL) {
usr/src/uts/common/fs/zfs/vdev.c
1170
if (vd->vdev_islog && vd->vdev_alloc_bias == VDEV_BIAS_NONE)
usr/src/uts/common/fs/zfs/vdev.c
1171
vd->vdev_alloc_bias = VDEV_BIAS_LOG;
usr/src/uts/common/fs/zfs/vdev.c
1173
ASSERT3U(vd->vdev_islog, ==,
usr/src/uts/common/fs/zfs/vdev.c
1174
(vd->vdev_alloc_bias == VDEV_BIAS_LOG));
usr/src/uts/common/fs/zfs/vdev.c
1176
switch (vd->vdev_alloc_bias) {
usr/src/uts/common/fs/zfs/vdev.c
118
vdev_dbgmsg(vdev_t *vd, const char *fmt, ...)
usr/src/uts/common/fs/zfs/vdev.c
1190
vd->vdev_mg = metaslab_group_create(mc, vd,
usr/src/uts/common/fs/zfs/vdev.c
1198
if (vd->vdev_top == vd && vd->vdev_ashift != 0 &&
usr/src/uts/common/fs/zfs/vdev.c
1199
mc == spa_normal_class(spa) && vd->vdev_aux == NULL) {
usr/src/uts/common/fs/zfs/vdev.c
1200
if (vd->vdev_ashift > spa->spa_max_ashift)
usr/src/uts/common/fs/zfs/vdev.c
1201
spa->spa_max_ashift = vd->vdev_ashift;
usr/src/uts/common/fs/zfs/vdev.c
1202
if (vd->vdev_ashift < spa->spa_min_ashift)
usr/src/uts/common/fs/zfs/vdev.c
1203
spa->spa_min_ashift = vd->vdev_ashift;
usr/src/uts/common/fs/zfs/vdev.c
1209
vdev_metaslab_init(vdev_t *vd, uint64_t txg)
usr/src/uts/common/fs/zfs/vdev.c
1211
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev.c
1214
uint64_t oldc = vd->vdev_ms_count;
usr/src/uts/common/fs/zfs/vdev.c
1215
uint64_t newc = vd->vdev_asize >> vd->vdev_ms_shift;
usr/src/uts/common/fs/zfs/vdev.c
1225
if (vd->vdev_ms_shift == 0)
usr/src/uts/common/fs/zfs/vdev.c
1228
ASSERT(!vd->vdev_ishole);
usr/src/uts/common/fs/zfs/vdev.c
1235
bcopy(vd->vdev_ms, mspp, oldc * sizeof (*mspp));
usr/src/uts/common/fs/zfs/vdev.c
1236
kmem_free(vd->vdev_ms, oldc * sizeof (*mspp));
usr/src/uts/common/fs/zfs/vdev.c
1239
vd->vdev_ms = mspp;
usr/src/uts/common/fs/zfs/vdev.c
1240
vd->vdev_ms_count = newc;
usr/src/uts/common/fs/zfs/vdev.c
1249
if (txg == 0 && vd->vdev_ms_array != 0) {
usr/src/uts/common/fs/zfs/vdev.c
1250
error = dmu_read(mos, vd->vdev_ms_array,
usr/src/uts/common/fs/zfs/vdev.c
1254
vdev_dbgmsg(vd, "unable to read the metaslab "
usr/src/uts/common/fs/zfs/vdev.c
1266
if (vd->vdev_mg == NULL) {
usr/src/uts/common/fs/zfs/vdev.c
1267
ASSERT0(vdev_is_concrete(vd));
usr/src/uts/common/fs/zfs/vdev.c
1268
vdev_metaslab_group_create(vd);
usr/src/uts/common/fs/zfs/vdev.c
127
if (vd->vdev_path != NULL) {
usr/src/uts/common/fs/zfs/vdev.c
1271
error = metaslab_init(vd->vdev_mg, m, object, txg,
usr/src/uts/common/fs/zfs/vdev.c
1272
&(vd->vdev_ms[m]));
usr/src/uts/common/fs/zfs/vdev.c
1274
vdev_dbgmsg(vd, "metaslab_init failed [error=%d]",
usr/src/uts/common/fs/zfs/vdev.c
128
zfs_dbgmsg("%s vdev '%s': %s", vd->vdev_ops->vdev_op_type,
usr/src/uts/common/fs/zfs/vdev.c
1288
if (!expanding && !vd->vdev_removing) {
usr/src/uts/common/fs/zfs/vdev.c
1289
metaslab_group_activate(vd->vdev_mg);
usr/src/uts/common/fs/zfs/vdev.c
129
vd->vdev_path, buf);
usr/src/uts/common/fs/zfs/vdev.c
1306
vdev_metaslab_fini(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev.c
1308
if (vd->vdev_checkpoint_sm != NULL) {
usr/src/uts/common/fs/zfs/vdev.c
1309
ASSERT(spa_feature_is_active(vd->vdev_spa,
usr/src/uts/common/fs/zfs/vdev.c
1311
space_map_close(vd->vdev_checkpoint_sm);
usr/src/uts/common/fs/zfs/vdev.c
132
vd->vdev_ops->vdev_op_type,
usr/src/uts/common/fs/zfs/vdev.c
1320
vd->vdev_checkpoint_sm = NULL;
usr/src/uts/common/fs/zfs/vdev.c
1323
if (vd->vdev_ms != NULL) {
usr/src/uts/common/fs/zfs/vdev.c
1324
metaslab_group_t *mg = vd->vdev_mg;
usr/src/uts/common/fs/zfs/vdev.c
1327
uint64_t count = vd->vdev_ms_count;
usr/src/uts/common/fs/zfs/vdev.c
1329
metaslab_t *msp = vd->vdev_ms[m];
usr/src/uts/common/fs/zfs/vdev.c
133
(u_longlong_t)vd->vdev_id,
usr/src/uts/common/fs/zfs/vdev.c
1333
kmem_free(vd->vdev_ms, count * sizeof (metaslab_t *));
usr/src/uts/common/fs/zfs/vdev.c
1334
vd->vdev_ms = NULL;
usr/src/uts/common/fs/zfs/vdev.c
1336
vd->vdev_ms_count = 0;
usr/src/uts/common/fs/zfs/vdev.c
134
(u_longlong_t)vd->vdev_guid, buf);
usr/src/uts/common/fs/zfs/vdev.c
1341
ASSERT0(vd->vdev_ms_count);
usr/src/uts/common/fs/zfs/vdev.c
1354
vdev_t *vd = zio->io_vd;
usr/src/uts/common/fs/zfs/vdev.c
1357
ASSERT(vd->vdev_probe_zio != NULL);
usr/src/uts/common/fs/zfs/vdev.c
1363
zio_nowait(zio_write_phys(vd->vdev_probe_zio, vd,
usr/src/uts/common/fs/zfs/vdev.c
1377
vd->vdev_cant_read |= !vps->vps_readable;
usr/src/uts/common/fs/zfs/vdev.c
1378
vd->vdev_cant_write |= !vps->vps_writeable;
usr/src/uts/common/fs/zfs/vdev.c
1380
if (vdev_readable(vd) &&
usr/src/uts/common/fs/zfs/vdev.c
1381
(vdev_writeable(vd) || !spa_writeable(spa))) {
usr/src/uts/common/fs/zfs/vdev.c
1385
vdev_dbgmsg(vd, "failed probe");
usr/src/uts/common/fs/zfs/vdev.c
1387
spa, vd, NULL, NULL, 0, 0);
usr/src/uts/common/fs/zfs/vdev.c
139
vdev_dbgmsg_print_tree(vdev_t *vd, int indent)
usr/src/uts/common/fs/zfs/vdev.c
1391
mutex_enter(&vd->vdev_probe_lock);
usr/src/uts/common/fs/zfs/vdev.c
1392
ASSERT(vd->vdev_probe_zio == zio);
usr/src/uts/common/fs/zfs/vdev.c
1393
vd->vdev_probe_zio = NULL;
usr/src/uts/common/fs/zfs/vdev.c
1394
mutex_exit(&vd->vdev_probe_lock);
usr/src/uts/common/fs/zfs/vdev.c
1398
if (!vdev_accessible(vd, pio))
usr/src/uts/common/fs/zfs/vdev.c
1413
vdev_probe(vdev_t *vd, zio_t *zio)
usr/src/uts/common/fs/zfs/vdev.c
1415
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev.c
1419
ASSERT(vd->vdev_ops->vdev_op_leaf);
usr/src/uts/common/fs/zfs/vdev.c
143
if (vd->vdev_ishole || vd->vdev_ops == &vdev_missing_ops) {
usr/src/uts/common/fs/zfs/vdev.c
1432
mutex_enter(&vd->vdev_probe_lock);
usr/src/uts/common/fs/zfs/vdev.c
1434
if ((pio = vd->vdev_probe_zio) == NULL) {
usr/src/uts/common/fs/zfs/vdev.c
144
zfs_dbgmsg("%*svdev %u: %s", indent, "", vd->vdev_id,
usr/src/uts/common/fs/zfs/vdev.c
145
vd->vdev_ops->vdev_op_type);
usr/src/uts/common/fs/zfs/vdev.c
1459
vd->vdev_cant_read = B_FALSE;
usr/src/uts/common/fs/zfs/vdev.c
1460
vd->vdev_cant_write = B_FALSE;
usr/src/uts/common/fs/zfs/vdev.c
1463
vd->vdev_probe_zio = pio = zio_null(NULL, spa, vd,
usr/src/uts/common/fs/zfs/vdev.c
1472
vd->vdev_probe_wanted = B_TRUE;
usr/src/uts/common/fs/zfs/vdev.c
1480
mutex_exit(&vd->vdev_probe_lock);
usr/src/uts/common/fs/zfs/vdev.c
1488
zio_nowait(zio_read_phys(pio, vd,
usr/src/uts/common/fs/zfs/vdev.c
1489
vdev_label_offset(vd->vdev_psize, l,
usr/src/uts/common/fs/zfs/vdev.c
149
switch (vd->vdev_state) {
usr/src/uts/common/fs/zfs/vdev.c
1506
vdev_t *vd = arg;
usr/src/uts/common/fs/zfs/vdev.c
1508
vd->vdev_open_thread = curthread;
usr/src/uts/common/fs/zfs/vdev.c
1509
vd->vdev_open_error = vdev_open(vd);
usr/src/uts/common/fs/zfs/vdev.c
1510
vd->vdev_open_thread = NULL;
usr/src/uts/common/fs/zfs/vdev.c
1514
vdev_uses_zvols(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev.c
1516
if (vd->vdev_path && strncmp(vd->vdev_path, ZVOL_DIR,
usr/src/uts/common/fs/zfs/vdev.c
1519
for (int c = 0; c < vd->vdev_children; c++)
usr/src/uts/common/fs/zfs/vdev.c
1520
if (vdev_uses_zvols(vd->vdev_child[c]))
usr/src/uts/common/fs/zfs/vdev.c
1526
vdev_open_children(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev.c
1529
int children = vd->vdev_children;
usr/src/uts/common/fs/zfs/vdev.c
1536
if (vdev_uses_zvols(vd)) {
usr/src/uts/common/fs/zfs/vdev.c
1539
vd->vdev_child[c]->vdev_open_error =
usr/src/uts/common/fs/zfs/vdev.c
1540
vdev_open(vd->vdev_child[c]);
usr/src/uts/common/fs/zfs/vdev.c
1549
vd->vdev_child[c], TQ_SLEEP) != TASKQID_INVALID);
usr/src/uts/common/fs/zfs/vdev.c
1554
vd->vdev_nonrot = B_TRUE;
usr/src/uts/common/fs/zfs/vdev.c
1557
vd->vdev_nonrot &= vd->vdev_child[c]->vdev_nonrot;
usr/src/uts/common/fs/zfs/vdev.c
1567
vdev_set_deflate_ratio(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev.c
1569
if (vd == vd->vdev_top && !vd->vdev_ishole && vd->vdev_ashift != 0) {
usr/src/uts/common/fs/zfs/vdev.c
1570
vd->vdev_deflate_ratio = (1 << 17) /
usr/src/uts/common/fs/zfs/vdev.c
1571
(vdev_psize_to_asize(vd, 1 << 17) >> SPA_MINBLOCKSHIFT);
usr/src/uts/common/fs/zfs/vdev.c
1579
vdev_open(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev.c
1581
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev.c
1588
ASSERT(vd->vdev_open_thread == curthread ||
usr/src/uts/common/fs/zfs/vdev.c
1590
ASSERT(vd->vdev_state == VDEV_STATE_CLOSED ||
usr/src/uts/common/fs/zfs/vdev.c
1591
vd->vdev_state == VDEV_STATE_CANT_OPEN ||
usr/src/uts/common/fs/zfs/vdev.c
1592
vd->vdev_state == VDEV_STATE_OFFLINE);
usr/src/uts/common/fs/zfs/vdev.c
1594
vd->vdev_stat.vs_aux = VDEV_AUX_NONE;
usr/src/uts/common/fs/zfs/vdev.c
1595
vd->vdev_cant_read = B_FALSE;
usr/src/uts/common/fs/zfs/vdev.c
1596
vd->vdev_cant_write = B_FALSE;
usr/src/uts/common/fs/zfs/vdev.c
1597
vd->vdev_min_asize = vdev_get_min_asize(vd);
usr/src/uts/common/fs/zfs/vdev.c
1603
if (!vd->vdev_removed && vd->vdev_faulted) {
usr/src/uts/common/fs/zfs/vdev.c
1604
ASSERT(vd->vdev_children == 0);
usr/src/uts/common/fs/zfs/vdev.c
1605
ASSERT(vd->vdev_label_aux == VDEV_AUX_ERR_EXCEEDED ||
usr/src/uts/common/fs/zfs/vdev.c
1606
vd->vdev_label_aux == VDEV_AUX_EXTERNAL);
usr/src/uts/common/fs/zfs/vdev.c
1607
vdev_set_state(vd, B_TRUE, VDEV_STATE_FAULTED,
usr/src/uts/common/fs/zfs/vdev.c
1608
vd->vdev_label_aux);
usr/src/uts/common/fs/zfs/vdev.c
1610
} else if (vd->vdev_offline) {
usr/src/uts/common/fs/zfs/vdev.c
1611
ASSERT(vd->vdev_children == 0);
usr/src/uts/common/fs/zfs/vdev.c
1612
vdev_set_state(vd, B_TRUE, VDEV_STATE_OFFLINE, VDEV_AUX_NONE);
usr/src/uts/common/fs/zfs/vdev.c
1616
error = vd->vdev_ops->vdev_op_open(vd, &osize, &max_osize, &ashift);
usr/src/uts/common/fs/zfs/vdev.c
1622
vd->vdev_reopening = B_FALSE;
usr/src/uts/common/fs/zfs/vdev.c
1624
error = zio_handle_device_injection(vd, NULL, ENXIO);
usr/src/uts/common/fs/zfs/vdev.c
1627
if (vd->vdev_removed &&
usr/src/uts/common/fs/zfs/vdev.c
1628
vd->vdev_stat.vs_aux != VDEV_AUX_OPEN_FAILED)
usr/src/uts/common/fs/zfs/vdev.c
1629
vd->vdev_removed = B_FALSE;
usr/src/uts/common/fs/zfs/vdev.c
1631
if (vd->vdev_stat.vs_aux == VDEV_AUX_CHILDREN_OFFLINE) {
usr/src/uts/common/fs/zfs/vdev.c
1632
vdev_set_state(vd, B_TRUE, VDEV_STATE_OFFLINE,
usr/src/uts/common/fs/zfs/vdev.c
1633
vd->vdev_stat.vs_aux);
usr/src/uts/common/fs/zfs/vdev.c
1635
vdev_set_state(vd, B_TRUE, VDEV_STATE_CANT_OPEN,
usr/src/uts/common/fs/zfs/vdev.c
1636
vd->vdev_stat.vs_aux);
usr/src/uts/common/fs/zfs/vdev.c
1641
vd->vdev_removed = B_FALSE;
usr/src/uts/common/fs/zfs/vdev.c
1647
if (vd->vdev_faulted) {
usr/src/uts/common/fs/zfs/vdev.c
1648
ASSERT(vd->vdev_children == 0);
usr/src/uts/common/fs/zfs/vdev.c
1649
ASSERT(vd->vdev_label_aux == VDEV_AUX_ERR_EXCEEDED ||
usr/src/uts/common/fs/zfs/vdev.c
1650
vd->vdev_label_aux == VDEV_AUX_EXTERNAL);
usr/src/uts/common/fs/zfs/vdev.c
1651
vdev_set_state(vd, B_TRUE, VDEV_STATE_FAULTED,
usr/src/uts/common/fs/zfs/vdev.c
1652
vd->vdev_label_aux);
usr/src/uts/common/fs/zfs/vdev.c
1656
if (vd->vdev_degraded) {
usr/src/uts/common/fs/zfs/vdev.c
1657
ASSERT(vd->vdev_children == 0);
usr/src/uts/common/fs/zfs/vdev.c
1658
vdev_set_state(vd, B_TRUE, VDEV_STATE_DEGRADED,
usr/src/uts/common/fs/zfs/vdev.c
1661
vdev_set_state(vd, B_TRUE, VDEV_STATE_HEALTHY, 0);
usr/src/uts/common/fs/zfs/vdev.c
1667
if (vd->vdev_ishole || vd->vdev_ops == &vdev_missing_ops)
usr/src/uts/common/fs/zfs/vdev.c
1670
for (int c = 0; c < vd->vdev_children; c++) {
usr/src/uts/common/fs/zfs/vdev.c
1671
if (vd->vdev_child[c]->vdev_state != VDEV_STATE_HEALTHY) {
usr/src/uts/common/fs/zfs/vdev.c
1672
vdev_set_state(vd, B_TRUE, VDEV_STATE_DEGRADED,
usr/src/uts/common/fs/zfs/vdev.c
1681
if (vd->vdev_children == 0) {
usr/src/uts/common/fs/zfs/vdev.c
1683
vdev_set_state(vd, B_TRUE, VDEV_STATE_CANT_OPEN,
usr/src/uts/common/fs/zfs/vdev.c
1692
if (vd->vdev_parent != NULL && osize < SPA_MINDEVSIZE -
usr/src/uts/common/fs/zfs/vdev.c
1694
vdev_set_state(vd, B_TRUE, VDEV_STATE_CANT_OPEN,
usr/src/uts/common/fs/zfs/vdev.c
1703
vd->vdev_psize = psize;
usr/src/uts/common/fs/zfs/vdev.c
1708
if (asize < vd->vdev_min_asize) {
usr/src/uts/common/fs/zfs/vdev.c
1709
vdev_set_state(vd, B_TRUE, VDEV_STATE_CANT_OPEN,
usr/src/uts/common/fs/zfs/vdev.c
1714
if (vd->vdev_asize == 0) {
usr/src/uts/common/fs/zfs/vdev.c
1719
vd->vdev_asize = asize;
usr/src/uts/common/fs/zfs/vdev.c
1720
vd->vdev_max_asize = max_asize;
usr/src/uts/common/fs/zfs/vdev.c
1721
if (vd->vdev_ashift == 0) {
usr/src/uts/common/fs/zfs/vdev.c
1722
vd->vdev_ashift = ashift; /* use detected value */
usr/src/uts/common/fs/zfs/vdev.c
1724
if (vd->vdev_ashift != 0 && (vd->vdev_ashift < ASHIFT_MIN ||
usr/src/uts/common/fs/zfs/vdev.c
1725
vd->vdev_ashift > ASHIFT_MAX)) {
usr/src/uts/common/fs/zfs/vdev.c
1726
vdev_set_state(vd, B_TRUE, VDEV_STATE_CANT_OPEN,
usr/src/uts/common/fs/zfs/vdev.c
1736
if (ashift > vd->vdev_top->vdev_ashift &&
usr/src/uts/common/fs/zfs/vdev.c
1737
vd->vdev_ops->vdev_op_leaf) {
usr/src/uts/common/fs/zfs/vdev.c
1740
spa, vd, NULL, NULL, 0, 0);
usr/src/uts/common/fs/zfs/vdev.c
1743
vd->vdev_max_asize = max_asize;
usr/src/uts/common/fs/zfs/vdev.c
1758
if (vd->vdev_state == VDEV_STATE_HEALTHY &&
usr/src/uts/common/fs/zfs/vdev.c
1759
((asize > vd->vdev_asize &&
usr/src/uts/common/fs/zfs/vdev.c
176
(uint_t)vd->vdev_state);
usr/src/uts/common/fs/zfs/vdev.c
1760
(vd->vdev_expanding || spa->spa_autoexpand)) ||
usr/src/uts/common/fs/zfs/vdev.c
1761
(asize < vd->vdev_asize)))
usr/src/uts/common/fs/zfs/vdev.c
1762
vd->vdev_asize = asize;
usr/src/uts/common/fs/zfs/vdev.c
1764
vdev_set_min_asize(vd);
usr/src/uts/common/fs/zfs/vdev.c
1770
if (vd->vdev_ops->vdev_op_leaf &&
usr/src/uts/common/fs/zfs/vdev.c
1771
(error = zio_wait(vdev_probe(vd, NULL))) != 0) {
usr/src/uts/common/fs/zfs/vdev.c
1772
vdev_set_state(vd, B_TRUE, VDEV_STATE_FAULTED,
usr/src/uts/common/fs/zfs/vdev.c
1783
if (vd->vdev_top == vd && vd->vdev_ashift != 0 &&
usr/src/uts/common/fs/zfs/vdev.c
1784
vd->vdev_alloc_bias == VDEV_BIAS_NONE &&
usr/src/uts/common/fs/zfs/vdev.c
1785
vd->vdev_aux == NULL) {
usr/src/uts/common/fs/zfs/vdev.c
1786
if (vd->vdev_ashift > spa->spa_max_ashift)
usr/src/uts/common/fs/zfs/vdev.c
1787
spa->spa_max_ashift = vd->vdev_ashift;
usr/src/uts/common/fs/zfs/vdev.c
1788
if (vd->vdev_ashift < spa->spa_min_ashift)
usr/src/uts/common/fs/zfs/vdev.c
1789
spa->spa_min_ashift = vd->vdev_ashift;
usr/src/uts/common/fs/zfs/vdev.c
1797
if (vd->vdev_ops->vdev_op_leaf && !spa->spa_scrub_reopen)
usr/src/uts/common/fs/zfs/vdev.c
1798
dsl_scan_assess_vdev(spa->spa_dsl_pool, vd);
usr/src/uts/common/fs/zfs/vdev.c
180
"", (int)vd->vdev_id, vd->vdev_ops->vdev_op_type,
usr/src/uts/common/fs/zfs/vdev.c
181
vd->vdev_islog ? " (log)" : "",
usr/src/uts/common/fs/zfs/vdev.c
1814
vdev_validate(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev.c
1816
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev.c
182
(u_longlong_t)vd->vdev_guid,
usr/src/uts/common/fs/zfs/vdev.c
1826
for (uint64_t c = 0; c < vd->vdev_children; c++)
usr/src/uts/common/fs/zfs/vdev.c
1827
if (vdev_validate(vd->vdev_child[c]) != 0)
usr/src/uts/common/fs/zfs/vdev.c
183
vd->vdev_path ? vd->vdev_path : "N/A", state);
usr/src/uts/common/fs/zfs/vdev.c
1835
if (!vd->vdev_ops->vdev_op_leaf || !vdev_readable(vd))
usr/src/uts/common/fs/zfs/vdev.c
185
for (uint64_t i = 0; i < vd->vdev_children; i++)
usr/src/uts/common/fs/zfs/vdev.c
1850
if ((label = vdev_label_read_config(vd, txg)) == NULL) {
usr/src/uts/common/fs/zfs/vdev.c
1851
vdev_set_state(vd, B_TRUE, VDEV_STATE_CANT_OPEN,
usr/src/uts/common/fs/zfs/vdev.c
1853
vdev_dbgmsg(vd, "vdev_validate: failed reading config for "
usr/src/uts/common/fs/zfs/vdev.c
186
vdev_dbgmsg_print_tree(vd->vdev_child[i], indent + 2);
usr/src/uts/common/fs/zfs/vdev.c
1864
vdev_set_state(vd, B_FALSE, VDEV_STATE_CANT_OPEN,
usr/src/uts/common/fs/zfs/vdev.c
1867
vdev_dbgmsg(vd, "vdev_validate: vdev split into other pool");
usr/src/uts/common/fs/zfs/vdev.c
1872
vdev_set_state(vd, B_FALSE, VDEV_STATE_CANT_OPEN,
usr/src/uts/common/fs/zfs/vdev.c
1875
vdev_dbgmsg(vd, "vdev_validate: '%s' missing from label",
usr/src/uts/common/fs/zfs/vdev.c
1888
vdev_set_state(vd, B_FALSE, VDEV_STATE_CANT_OPEN,
usr/src/uts/common/fs/zfs/vdev.c
1891
vdev_dbgmsg(vd, "vdev_validate: vdev label pool_guid doesn't "
usr/src/uts/common/fs/zfs/vdev.c
1903
vdev_set_state(vd, B_FALSE, VDEV_STATE_CANT_OPEN,
usr/src/uts/common/fs/zfs/vdev.c
1906
vdev_dbgmsg(vd, "vdev_validate: '%s' missing from label",
usr/src/uts/common/fs/zfs/vdev.c
1913
vdev_set_state(vd, B_FALSE, VDEV_STATE_CANT_OPEN,
usr/src/uts/common/fs/zfs/vdev.c
1916
vdev_dbgmsg(vd, "vdev_validate: '%s' missing from label",
usr/src/uts/common/fs/zfs/vdev.c
1936
if (vd->vdev_guid != guid && vd->vdev_guid != aux_guid) {
usr/src/uts/common/fs/zfs/vdev.c
1939
if (vd != vd->vdev_top || vd->vdev_guid != top_guid)
usr/src/uts/common/fs/zfs/vdev.c
1942
if (vd->vdev_guid != top_guid &&
usr/src/uts/common/fs/zfs/vdev.c
1943
vd->vdev_top->vdev_guid != guid)
usr/src/uts/common/fs/zfs/vdev.c
1948
vdev_set_state(vd, B_FALSE, VDEV_STATE_CANT_OPEN,
usr/src/uts/common/fs/zfs/vdev.c
1951
vdev_dbgmsg(vd, "vdev_validate: config guid "
usr/src/uts/common/fs/zfs/vdev.c
1953
vdev_dbgmsg(vd, "CONFIG: guid %llu, top_guid %llu",
usr/src/uts/common/fs/zfs/vdev.c
1954
(u_longlong_t)vd->vdev_guid,
usr/src/uts/common/fs/zfs/vdev.c
1955
(u_longlong_t)vd->vdev_top->vdev_guid);
usr/src/uts/common/fs/zfs/vdev.c
1956
vdev_dbgmsg(vd, "LABEL: guid %llu, top_guid %llu, "
usr/src/uts/common/fs/zfs/vdev.c
1965
vdev_set_state(vd, B_FALSE, VDEV_STATE_CANT_OPEN,
usr/src/uts/common/fs/zfs/vdev.c
1968
vdev_dbgmsg(vd, "vdev_validate: '%s' missing from label",
usr/src/uts/common/fs/zfs/vdev.c
1982
vdev_dbgmsg(vd, "vdev_validate: invalid pool state (%llu) "
usr/src/uts/common/fs/zfs/vdev.c
1992
if (vd->vdev_not_present)
usr/src/uts/common/fs/zfs/vdev.c
1993
vd->vdev_not_present = 0;
usr/src/uts/common/fs/zfs/vdev.c
2080
vdev_t *vd = vdev_lookup_by_guid(stvd, dvd->vdev_guid);
usr/src/uts/common/fs/zfs/vdev.c
2082
if (vd == NULL || vd->vdev_ops != dvd->vdev_ops)
usr/src/uts/common/fs/zfs/vdev.c
2085
ASSERT(vd->vdev_ops->vdev_op_leaf);
usr/src/uts/common/fs/zfs/vdev.c
2087
vdev_copy_path_impl(vd, dvd);
usr/src/uts/common/fs/zfs/vdev.c
2113
vdev_close(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev.c
2115
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev.c
2116
vdev_t *pvd = vd->vdev_parent;
usr/src/uts/common/fs/zfs/vdev.c
2125
vd->vdev_reopening = (pvd->vdev_reopening && !vd->vdev_offline);
usr/src/uts/common/fs/zfs/vdev.c
2127
vd->vdev_ops->vdev_op_close(vd);
usr/src/uts/common/fs/zfs/vdev.c
2129
vdev_cache_purge(vd);
usr/src/uts/common/fs/zfs/vdev.c
2136
vd->vdev_prevstate = vd->vdev_state;
usr/src/uts/common/fs/zfs/vdev.c
2138
if (vd->vdev_offline)
usr/src/uts/common/fs/zfs/vdev.c
2139
vd->vdev_state = VDEV_STATE_OFFLINE;
usr/src/uts/common/fs/zfs/vdev.c
2141
vd->vdev_state = VDEV_STATE_CLOSED;
usr/src/uts/common/fs/zfs/vdev.c
2142
vd->vdev_stat.vs_aux = VDEV_AUX_NONE;
usr/src/uts/common/fs/zfs/vdev.c
2146
vdev_hold(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev.c
2148
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev.c
2154
for (int c = 0; c < vd->vdev_children; c++)
usr/src/uts/common/fs/zfs/vdev.c
2155
vdev_hold(vd->vdev_child[c]);
usr/src/uts/common/fs/zfs/vdev.c
2157
if (vd->vdev_ops->vdev_op_leaf && vd->vdev_ops->vdev_op_hold != NULL)
usr/src/uts/common/fs/zfs/vdev.c
2158
vd->vdev_ops->vdev_op_hold(vd);
usr/src/uts/common/fs/zfs/vdev.c
2162
vdev_rele(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev.c
2164
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev.c
2167
for (int c = 0; c < vd->vdev_children; c++)
usr/src/uts/common/fs/zfs/vdev.c
2168
vdev_rele(vd->vdev_child[c]);
usr/src/uts/common/fs/zfs/vdev.c
2170
if (vd->vdev_ops->vdev_op_leaf && vd->vdev_ops->vdev_op_rele != NULL)
usr/src/uts/common/fs/zfs/vdev.c
2171
vd->vdev_ops->vdev_op_rele(vd);
usr/src/uts/common/fs/zfs/vdev.c
2181
vdev_reopen(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev.c
2183
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev.c
2188
vd->vdev_reopening = !vd->vdev_offline;
usr/src/uts/common/fs/zfs/vdev.c
2189
vdev_close(vd);
usr/src/uts/common/fs/zfs/vdev.c
2190
(void) vdev_open(vd);
usr/src/uts/common/fs/zfs/vdev.c
2197
if (vd->vdev_aux) {
usr/src/uts/common/fs/zfs/vdev.c
2198
(void) vdev_validate_aux(vd);
usr/src/uts/common/fs/zfs/vdev.c
2199
if (vdev_readable(vd) && vdev_writeable(vd) &&
usr/src/uts/common/fs/zfs/vdev.c
2200
vd->vdev_aux == &spa->spa_l2cache) {
usr/src/uts/common/fs/zfs/vdev.c
2209
if (l2arc_vdev_present(vd)) {
usr/src/uts/common/fs/zfs/vdev.c
2210
l2arc_rebuild_vdev(vd, B_TRUE);
usr/src/uts/common/fs/zfs/vdev.c
2212
l2arc_add_vdev(spa, vd);
usr/src/uts/common/fs/zfs/vdev.c
2217
(void) vdev_validate(vd);
usr/src/uts/common/fs/zfs/vdev.c
2223
vdev_propagate_state(vd);
usr/src/uts/common/fs/zfs/vdev.c
2227
vdev_create(vdev_t *vd, uint64_t txg, boolean_t isreplacing)
usr/src/uts/common/fs/zfs/vdev.c
2236
error = vdev_open(vd);
usr/src/uts/common/fs/zfs/vdev.c
2238
if (error || vd->vdev_state != VDEV_STATE_HEALTHY) {
usr/src/uts/common/fs/zfs/vdev.c
2239
vdev_close(vd);
usr/src/uts/common/fs/zfs/vdev.c
2246
if ((error = vdev_dtl_load(vd)) != 0 ||
usr/src/uts/common/fs/zfs/vdev.c
2247
(error = vdev_label_init(vd, txg, isreplacing ?
usr/src/uts/common/fs/zfs/vdev.c
2249
vdev_close(vd);
usr/src/uts/common/fs/zfs/vdev.c
225
vdev_default_xlate(vdev_t *vd, const range_seg64_t *in, range_seg64_t *res)
usr/src/uts/common/fs/zfs/vdev.c
2257
vdev_metaslab_set_size(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev.c
2259
uint64_t asize = vd->vdev_asize;
usr/src/uts/common/fs/zfs/vdev.c
2325
vd->vdev_ms_shift = ms_shift;
usr/src/uts/common/fs/zfs/vdev.c
2326
ASSERT3U(vd->vdev_ms_shift, >=, SPA_MAXBLOCKSHIFT);
usr/src/uts/common/fs/zfs/vdev.c
2330
vdev_dirty(vdev_t *vd, int flags, void *arg, uint64_t txg)
usr/src/uts/common/fs/zfs/vdev.c
2332
ASSERT(vd == vd->vdev_top);
usr/src/uts/common/fs/zfs/vdev.c
2334
ASSERT(vdev_is_concrete(vd) || flags == 0);
usr/src/uts/common/fs/zfs/vdev.c
2336
ASSERT(spa_writeable(vd->vdev_spa));
usr/src/uts/common/fs/zfs/vdev.c
2339
(void) txg_list_add(&vd->vdev_ms_list, arg, txg);
usr/src/uts/common/fs/zfs/vdev.c
2342
(void) txg_list_add(&vd->vdev_dtl_list, arg, txg);
usr/src/uts/common/fs/zfs/vdev.c
2344
(void) txg_list_add(&vd->vdev_spa->spa_vdev_txg_list, vd, txg);
usr/src/uts/common/fs/zfs/vdev.c
2348
vdev_dirty_leaves(vdev_t *vd, int flags, uint64_t txg)
usr/src/uts/common/fs/zfs/vdev.c
2350
for (int c = 0; c < vd->vdev_children; c++)
usr/src/uts/common/fs/zfs/vdev.c
2351
vdev_dirty_leaves(vd->vdev_child[c], flags, txg);
usr/src/uts/common/fs/zfs/vdev.c
2353
if (vd->vdev_ops->vdev_op_leaf)
usr/src/uts/common/fs/zfs/vdev.c
2354
vdev_dirty(vd->vdev_top, flags, vd, txg);
usr/src/uts/common/fs/zfs/vdev.c
236
vdev_default_asize(vdev_t *vd, uint64_t psize)
usr/src/uts/common/fs/zfs/vdev.c
238
uint64_t asize = P2ROUNDUP(psize, 1ULL << vd->vdev_top->vdev_ashift);
usr/src/uts/common/fs/zfs/vdev.c
2396
vdev_dtl_dirty(vdev_t *vd, vdev_dtl_type_t t, uint64_t txg, uint64_t size)
usr/src/uts/common/fs/zfs/vdev.c
2398
range_tree_t *rt = vd->vdev_dtl[t];
usr/src/uts/common/fs/zfs/vdev.c
2401
ASSERT(vd != vd->vdev_spa->spa_root_vdev);
usr/src/uts/common/fs/zfs/vdev.c
2402
ASSERT(spa_writeable(vd->vdev_spa));
usr/src/uts/common/fs/zfs/vdev.c
2404
mutex_enter(&vd->vdev_dtl_lock);
usr/src/uts/common/fs/zfs/vdev.c
2407
mutex_exit(&vd->vdev_dtl_lock);
usr/src/uts/common/fs/zfs/vdev.c
241
for (int c = 0; c < vd->vdev_children; c++) {
usr/src/uts/common/fs/zfs/vdev.c
2411
vdev_dtl_contains(vdev_t *vd, vdev_dtl_type_t t, uint64_t txg, uint64_t size)
usr/src/uts/common/fs/zfs/vdev.c
2413
range_tree_t *rt = vd->vdev_dtl[t];
usr/src/uts/common/fs/zfs/vdev.c
2417
ASSERT(vd != vd->vdev_spa->spa_root_vdev);
usr/src/uts/common/fs/zfs/vdev.c
242
csize = vdev_psize_to_asize(vd->vdev_child[c], psize);
usr/src/uts/common/fs/zfs/vdev.c
2427
if (vd->vdev_spa->spa_load_state != SPA_LOAD_NONE)
usr/src/uts/common/fs/zfs/vdev.c
2430
mutex_enter(&vd->vdev_dtl_lock);
usr/src/uts/common/fs/zfs/vdev.c
2433
mutex_exit(&vd->vdev_dtl_lock);
usr/src/uts/common/fs/zfs/vdev.c
2439
vdev_dtl_empty(vdev_t *vd, vdev_dtl_type_t t)
usr/src/uts/common/fs/zfs/vdev.c
2441
range_tree_t *rt = vd->vdev_dtl[t];
usr/src/uts/common/fs/zfs/vdev.c
2444
mutex_enter(&vd->vdev_dtl_lock);
usr/src/uts/common/fs/zfs/vdev.c
2446
mutex_exit(&vd->vdev_dtl_lock);
usr/src/uts/common/fs/zfs/vdev.c
2455
vdev_dtl_need_resilver(vdev_t *vd, uint64_t offset, size_t psize)
usr/src/uts/common/fs/zfs/vdev.c
2457
ASSERT(vd != vd->vdev_spa->spa_root_vdev);
usr/src/uts/common/fs/zfs/vdev.c
2459
if (vd->vdev_ops->vdev_op_need_resilver == NULL ||
usr/src/uts/common/fs/zfs/vdev.c
2460
vd->vdev_ops->vdev_op_leaf)
usr/src/uts/common/fs/zfs/vdev.c
2463
return (vd->vdev_ops->vdev_op_need_resilver(vd, offset, psize));
usr/src/uts/common/fs/zfs/vdev.c
2470
vdev_dtl_min(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev.c
2472
ASSERT(MUTEX_HELD(&vd->vdev_dtl_lock));
usr/src/uts/common/fs/zfs/vdev.c
2473
ASSERT3U(range_tree_space(vd->vdev_dtl[DTL_MISSING]), !=, 0);
usr/src/uts/common/fs/zfs/vdev.c
2474
ASSERT0(vd->vdev_children);
usr/src/uts/common/fs/zfs/vdev.c
2476
return (range_tree_min(vd->vdev_dtl[DTL_MISSING]) - 1);
usr/src/uts/common/fs/zfs/vdev.c
2483
vdev_dtl_max(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev.c
2485
ASSERT(MUTEX_HELD(&vd->vdev_dtl_lock));
usr/src/uts/common/fs/zfs/vdev.c
2486
ASSERT3U(range_tree_space(vd->vdev_dtl[DTL_MISSING]), !=, 0);
usr/src/uts/common/fs/zfs/vdev.c
2487
ASSERT0(vd->vdev_children);
usr/src/uts/common/fs/zfs/vdev.c
2489
return (range_tree_max(vd->vdev_dtl[DTL_MISSING]));
usr/src/uts/common/fs/zfs/vdev.c
2501
vdev_dtl_should_excise(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev.c
2503
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev.c
2506
ASSERT0(vd->vdev_children);
usr/src/uts/common/fs/zfs/vdev.c
2508
if (vd->vdev_state < VDEV_STATE_DEGRADED)
usr/src/uts/common/fs/zfs/vdev.c
2511
if (vd->vdev_resilver_deferred)
usr/src/uts/common/fs/zfs/vdev.c
2514
if (vd->vdev_resilver_txg == 0 ||
usr/src/uts/common/fs/zfs/vdev.c
2515
range_tree_is_empty(vd->vdev_dtl[DTL_MISSING]))
usr/src/uts/common/fs/zfs/vdev.c
2525
if (vdev_dtl_max(vd) <= scn->scn_phys.scn_max_txg) {
usr/src/uts/common/fs/zfs/vdev.c
2526
ASSERT3U(scn->scn_phys.scn_min_txg, <=, vdev_dtl_min(vd));
usr/src/uts/common/fs/zfs/vdev.c
2527
ASSERT3U(scn->scn_phys.scn_min_txg, <, vd->vdev_resilver_txg);
usr/src/uts/common/fs/zfs/vdev.c
2528
ASSERT3U(vd->vdev_resilver_txg, <=, scn->scn_phys.scn_max_txg);
usr/src/uts/common/fs/zfs/vdev.c
2538
vdev_dtl_reassess(vdev_t *vd, uint64_t txg, uint64_t scrub_txg, int scrub_done)
usr/src/uts/common/fs/zfs/vdev.c
2540
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev.c
2546
for (int c = 0; c < vd->vdev_children; c++)
usr/src/uts/common/fs/zfs/vdev.c
2547
vdev_dtl_reassess(vd->vdev_child[c], txg,
usr/src/uts/common/fs/zfs/vdev.c
2550
if (vd == spa->spa_root_vdev || !vdev_is_concrete(vd) || vd->vdev_aux)
usr/src/uts/common/fs/zfs/vdev.c
2553
if (vd->vdev_ops->vdev_op_leaf) {
usr/src/uts/common/fs/zfs/vdev.c
2557
mutex_enter(&vd->vdev_dtl_lock);
usr/src/uts/common/fs/zfs/vdev.c
256
vdev_get_min_asize(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev.c
2566
!range_tree_is_empty(vd->vdev_dtl[DTL_MISSING])) {
usr/src/uts/common/fs/zfs/vdev.c
2570
(u_longlong_t)vd->vdev_guid, (u_longlong_t)txg,
usr/src/uts/common/fs/zfs/vdev.c
2572
(u_longlong_t)vdev_dtl_min(vd),
usr/src/uts/common/fs/zfs/vdev.c
2573
(u_longlong_t)vdev_dtl_max(vd),
usr/src/uts/common/fs/zfs/vdev.c
258
vdev_t *pvd = vd->vdev_parent;
usr/src/uts/common/fs/zfs/vdev.c
2586
vdev_dtl_should_excise(vd)) {
usr/src/uts/common/fs/zfs/vdev.c
2606
vd->vdev_dtl[DTL_MISSING], 1);
usr/src/uts/common/fs/zfs/vdev.c
2609
vd->vdev_dtl[DTL_SCRUB], 2);
usr/src/uts/common/fs/zfs/vdev.c
2611
vd->vdev_dtl[DTL_MISSING], 1);
usr/src/uts/common/fs/zfs/vdev.c
2614
if (!range_tree_is_empty(vd->vdev_dtl[DTL_MISSING])) {
usr/src/uts/common/fs/zfs/vdev.c
2616
(u_longlong_t)vdev_dtl_min(vd),
usr/src/uts/common/fs/zfs/vdev.c
2617
(u_longlong_t)vdev_dtl_max(vd));
usr/src/uts/common/fs/zfs/vdev.c
2622
range_tree_vacate(vd->vdev_dtl[DTL_PARTIAL], NULL, NULL);
usr/src/uts/common/fs/zfs/vdev.c
2623
range_tree_walk(vd->vdev_dtl[DTL_MISSING],
usr/src/uts/common/fs/zfs/vdev.c
2624
range_tree_add, vd->vdev_dtl[DTL_PARTIAL]);
usr/src/uts/common/fs/zfs/vdev.c
2626
range_tree_vacate(vd->vdev_dtl[DTL_SCRUB], NULL, NULL);
usr/src/uts/common/fs/zfs/vdev.c
2627
range_tree_vacate(vd->vdev_dtl[DTL_OUTAGE], NULL, NULL);
usr/src/uts/common/fs/zfs/vdev.c
2628
if (!vdev_readable(vd))
usr/src/uts/common/fs/zfs/vdev.c
2629
range_tree_add(vd->vdev_dtl[DTL_OUTAGE], 0, -1ULL);
usr/src/uts/common/fs/zfs/vdev.c
2631
range_tree_walk(vd->vdev_dtl[DTL_MISSING],
usr/src/uts/common/fs/zfs/vdev.c
2632
range_tree_add, vd->vdev_dtl[DTL_OUTAGE]);
usr/src/uts/common/fs/zfs/vdev.c
2638
if (vd->vdev_resilver_txg != 0 &&
usr/src/uts/common/fs/zfs/vdev.c
2639
range_tree_is_empty(vd->vdev_dtl[DTL_MISSING]) &&
usr/src/uts/common/fs/zfs/vdev.c
2640
range_tree_is_empty(vd->vdev_dtl[DTL_OUTAGE]))
usr/src/uts/common/fs/zfs/vdev.c
2641
vd->vdev_resilver_txg = 0;
usr/src/uts/common/fs/zfs/vdev.c
2643
mutex_exit(&vd->vdev_dtl_lock);
usr/src/uts/common/fs/zfs/vdev.c
2646
vdev_dirty(vd->vdev_top, VDD_DTL, vd, txg);
usr/src/uts/common/fs/zfs/vdev.c
265
return (vd->vdev_asize);
usr/src/uts/common/fs/zfs/vdev.c
2650
mutex_enter(&vd->vdev_dtl_lock);
usr/src/uts/common/fs/zfs/vdev.c
2658
else if (vd->vdev_nparity != 0)
usr/src/uts/common/fs/zfs/vdev.c
2659
minref = vd->vdev_nparity + 1; /* RAID-Z */
usr/src/uts/common/fs/zfs/vdev.c
2661
minref = vd->vdev_children; /* any kind of mirror */
usr/src/uts/common/fs/zfs/vdev.c
2663
for (int c = 0; c < vd->vdev_children; c++) {
usr/src/uts/common/fs/zfs/vdev.c
2664
vdev_t *cvd = vd->vdev_child[c];
usr/src/uts/common/fs/zfs/vdev.c
2669
space_reftree_generate_map(&reftree, vd->vdev_dtl[t], minref);
usr/src/uts/common/fs/zfs/vdev.c
2672
mutex_exit(&vd->vdev_dtl_lock);
usr/src/uts/common/fs/zfs/vdev.c
2676
vdev_dtl_load(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev.c
2678
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev.c
2682
if (vd->vdev_ops->vdev_op_leaf && vd->vdev_dtl_object != 0) {
usr/src/uts/common/fs/zfs/vdev.c
2683
ASSERT(vdev_is_concrete(vd));
usr/src/uts/common/fs/zfs/vdev.c
2685
error = space_map_open(&vd->vdev_dtl_sm, mos,
usr/src/uts/common/fs/zfs/vdev.c
2686
vd->vdev_dtl_object, 0, -1ULL, 0);
usr/src/uts/common/fs/zfs/vdev.c
2689
ASSERT(vd->vdev_dtl_sm != NULL);
usr/src/uts/common/fs/zfs/vdev.c
2691
mutex_enter(&vd->vdev_dtl_lock);
usr/src/uts/common/fs/zfs/vdev.c
2692
error = space_map_load(vd->vdev_dtl_sm,
usr/src/uts/common/fs/zfs/vdev.c
2693
vd->vdev_dtl[DTL_MISSING], SM_ALLOC);
usr/src/uts/common/fs/zfs/vdev.c
2694
mutex_exit(&vd->vdev_dtl_lock);
usr/src/uts/common/fs/zfs/vdev.c
2699
for (int c = 0; c < vd->vdev_children; c++) {
usr/src/uts/common/fs/zfs/vdev.c
2700
error = vdev_dtl_load(vd->vdev_child[c]);
usr/src/uts/common/fs/zfs/vdev.c
2709
vdev_zap_allocation_data(vdev_t *vd, dmu_tx_t *tx)
usr/src/uts/common/fs/zfs/vdev.c
271
if (vd == vd->vdev_top)
usr/src/uts/common/fs/zfs/vdev.c
2711
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev.c
2713
vdev_alloc_bias_t alloc_bias = vd->vdev_alloc_bias;
usr/src/uts/common/fs/zfs/vdev.c
272
return (P2ALIGN(vd->vdev_asize, 1ULL << vd->vdev_ms_shift));
usr/src/uts/common/fs/zfs/vdev.c
2724
VERIFY0(zap_add(mos, vd->vdev_top_zap, VDEV_TOP_ZAP_ALLOCATION_BIAS,
usr/src/uts/common/fs/zfs/vdev.c
2733
vdev_destroy_unlink_zap(vdev_t *vd, uint64_t zapobj, dmu_tx_t *tx)
usr/src/uts/common/fs/zfs/vdev.c
2735
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev.c
2743
vdev_create_link_zap(vdev_t *vd, dmu_tx_t *tx)
usr/src/uts/common/fs/zfs/vdev.c
2745
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev.c
2757
vdev_construct_zaps(vdev_t *vd, dmu_tx_t *tx)
usr/src/uts/common/fs/zfs/vdev.c
2759
if (vd->vdev_ops != &vdev_hole_ops &&
usr/src/uts/common/fs/zfs/vdev.c
2760
vd->vdev_ops != &vdev_missing_ops &&
usr/src/uts/common/fs/zfs/vdev.c
2761
vd->vdev_ops != &vdev_root_ops &&
usr/src/uts/common/fs/zfs/vdev.c
2762
!vd->vdev_top->vdev_removing) {
usr/src/uts/common/fs/zfs/vdev.c
2763
if (vd->vdev_ops->vdev_op_leaf && vd->vdev_leaf_zap == 0) {
usr/src/uts/common/fs/zfs/vdev.c
2764
vd->vdev_leaf_zap = vdev_create_link_zap(vd, tx);
usr/src/uts/common/fs/zfs/vdev.c
2766
if (vd == vd->vdev_top && vd->vdev_top_zap == 0) {
usr/src/uts/common/fs/zfs/vdev.c
2767
vd->vdev_top_zap = vdev_create_link_zap(vd, tx);
usr/src/uts/common/fs/zfs/vdev.c
2768
if (vd->vdev_alloc_bias != VDEV_BIAS_NONE)
usr/src/uts/common/fs/zfs/vdev.c
2769
vdev_zap_allocation_data(vd, tx);
usr/src/uts/common/fs/zfs/vdev.c
2773
for (uint64_t i = 0; i < vd->vdev_children; i++) {
usr/src/uts/common/fs/zfs/vdev.c
2774
vdev_construct_zaps(vd->vdev_child[i], tx);
usr/src/uts/common/fs/zfs/vdev.c
2779
vdev_dtl_sync(vdev_t *vd, uint64_t txg)
usr/src/uts/common/fs/zfs/vdev.c
2781
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev.c
2782
range_tree_t *rt = vd->vdev_dtl[DTL_MISSING];
usr/src/uts/common/fs/zfs/vdev.c
2786
uint64_t object = space_map_object(vd->vdev_dtl_sm);
usr/src/uts/common/fs/zfs/vdev.c
2788
ASSERT(vdev_is_concrete(vd));
usr/src/uts/common/fs/zfs/vdev.c
2789
ASSERT(vd->vdev_ops->vdev_op_leaf);
usr/src/uts/common/fs/zfs/vdev.c
2793
if (vd->vdev_detached || vd->vdev_top->vdev_removing) {
usr/src/uts/common/fs/zfs/vdev.c
2794
mutex_enter(&vd->vdev_dtl_lock);
usr/src/uts/common/fs/zfs/vdev.c
2795
space_map_free(vd->vdev_dtl_sm, tx);
usr/src/uts/common/fs/zfs/vdev.c
2796
space_map_close(vd->vdev_dtl_sm);
usr/src/uts/common/fs/zfs/vdev.c
2797
vd->vdev_dtl_sm = NULL;
usr/src/uts/common/fs/zfs/vdev.c
2798
mutex_exit(&vd->vdev_dtl_lock);
usr/src/uts/common/fs/zfs/vdev.c
2805
if (vd->vdev_leaf_zap != 0 && (vd->vdev_detached ||
usr/src/uts/common/fs/zfs/vdev.c
2806
vd->vdev_top->vdev_islog)) {
usr/src/uts/common/fs/zfs/vdev.c
2807
vdev_destroy_unlink_zap(vd, vd->vdev_leaf_zap, tx);
usr/src/uts/common/fs/zfs/vdev.c
2808
vd->vdev_leaf_zap = 0;
usr/src/uts/common/fs/zfs/vdev.c
2815
if (vd->vdev_dtl_sm == NULL) {
usr/src/uts/common/fs/zfs/vdev.c
2821
VERIFY0(space_map_open(&vd->vdev_dtl_sm, mos, new_object,
usr/src/uts/common/fs/zfs/vdev.c
2823
ASSERT(vd->vdev_dtl_sm != NULL);
usr/src/uts/common/fs/zfs/vdev.c
2828
mutex_enter(&vd->vdev_dtl_lock);
usr/src/uts/common/fs/zfs/vdev.c
2830
mutex_exit(&vd->vdev_dtl_lock);
usr/src/uts/common/fs/zfs/vdev.c
2832
space_map_truncate(vd->vdev_dtl_sm, zfs_vdev_dtl_sm_blksz, tx);
usr/src/uts/common/fs/zfs/vdev.c
2833
space_map_write(vd->vdev_dtl_sm, rtsync, SM_ALLOC, SM_NO_VDEVID, tx);
usr/src/uts/common/fs/zfs/vdev.c
2842
if (object != space_map_object(vd->vdev_dtl_sm)) {
usr/src/uts/common/fs/zfs/vdev.c
2843
vdev_dbgmsg(vd, "txg %llu, spa %s, DTL old object %llu, "
usr/src/uts/common/fs/zfs/vdev.c
2846
(u_longlong_t)space_map_object(vd->vdev_dtl_sm));
usr/src/uts/common/fs/zfs/vdev.c
2847
vdev_config_dirty(vd->vdev_top);
usr/src/uts/common/fs/zfs/vdev.c
2858
vdev_dtl_required(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev.c
286
vdev_set_min_asize(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev.c
2860
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev.c
2861
vdev_t *tvd = vd->vdev_top;
usr/src/uts/common/fs/zfs/vdev.c
2862
uint8_t cant_read = vd->vdev_cant_read;
usr/src/uts/common/fs/zfs/vdev.c
2867
if (vd == spa->spa_root_vdev || vd == tvd)
usr/src/uts/common/fs/zfs/vdev.c
2875
vd->vdev_cant_read = B_TRUE;
usr/src/uts/common/fs/zfs/vdev.c
2878
vd->vdev_cant_read = cant_read;
usr/src/uts/common/fs/zfs/vdev.c
288
vd->vdev_min_asize = vdev_get_min_asize(vd);
usr/src/uts/common/fs/zfs/vdev.c
2882
required = !!zio_handle_device_injection(vd, NULL, ECHILD);
usr/src/uts/common/fs/zfs/vdev.c
2891
vdev_resilver_needed(vdev_t *vd, uint64_t *minp, uint64_t *maxp)
usr/src/uts/common/fs/zfs/vdev.c
2897
if (vd->vdev_children == 0) {
usr/src/uts/common/fs/zfs/vdev.c
2898
mutex_enter(&vd->vdev_dtl_lock);
usr/src/uts/common/fs/zfs/vdev.c
2899
if (!range_tree_is_empty(vd->vdev_dtl[DTL_MISSING]) &&
usr/src/uts/common/fs/zfs/vdev.c
290
for (int c = 0; c < vd->vdev_children; c++)
usr/src/uts/common/fs/zfs/vdev.c
2900
vdev_writeable(vd)) {
usr/src/uts/common/fs/zfs/vdev.c
2902
thismin = vdev_dtl_min(vd);
usr/src/uts/common/fs/zfs/vdev.c
2903
thismax = vdev_dtl_max(vd);
usr/src/uts/common/fs/zfs/vdev.c
2906
mutex_exit(&vd->vdev_dtl_lock);
usr/src/uts/common/fs/zfs/vdev.c
2908
for (int c = 0; c < vd->vdev_children; c++) {
usr/src/uts/common/fs/zfs/vdev.c
2909
vdev_t *cvd = vd->vdev_child[c];
usr/src/uts/common/fs/zfs/vdev.c
291
vdev_set_min_asize(vd->vdev_child[c]);
usr/src/uts/common/fs/zfs/vdev.c
2933
vdev_checkpoint_sm_object(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev.c
2935
ASSERT0(spa_config_held(vd->vdev_spa, SCL_ALL, RW_WRITER));
usr/src/uts/common/fs/zfs/vdev.c
2936
if (vd->vdev_top_zap == 0) {
usr/src/uts/common/fs/zfs/vdev.c
2941
int err = zap_lookup(spa_meta_objset(vd->vdev_spa), vd->vdev_top_zap,
usr/src/uts/common/fs/zfs/vdev.c
2950
vdev_load(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev.c
2956
for (int c = 0; c < vd->vdev_children; c++) {
usr/src/uts/common/fs/zfs/vdev.c
2957
error = vdev_load(vd->vdev_child[c]);
usr/src/uts/common/fs/zfs/vdev.c
2963
vdev_set_deflate_ratio(vd);
usr/src/uts/common/fs/zfs/vdev.c
2968
if (vd == vd->vdev_top && vd->vdev_top_zap != 0) {
usr/src/uts/common/fs/zfs/vdev.c
2969
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev.c
2972
if (zap_lookup(spa->spa_meta_objset, vd->vdev_top_zap,
usr/src/uts/common/fs/zfs/vdev.c
2975
ASSERT(vd->vdev_alloc_bias == VDEV_BIAS_NONE);
usr/src/uts/common/fs/zfs/vdev.c
2976
vd->vdev_alloc_bias = vdev_derive_alloc_bias(bias_str);
usr/src/uts/common/fs/zfs/vdev.c
2983
if (vd == vd->vdev_top && vdev_is_concrete(vd)) {
usr/src/uts/common/fs/zfs/vdev.c
2984
vdev_metaslab_group_create(vd);
usr/src/uts/common/fs/zfs/vdev.c
2986
if (vd->vdev_ashift == 0 || vd->vdev_asize == 0) {
usr/src/uts/common/fs/zfs/vdev.c
2987
vdev_set_state(vd, B_FALSE, VDEV_STATE_CANT_OPEN,
usr/src/uts/common/fs/zfs/vdev.c
2989
vdev_dbgmsg(vd, "vdev_load: invalid size. ashift=%llu, "
usr/src/uts/common/fs/zfs/vdev.c
2990
"asize=%llu", (u_longlong_t)vd->vdev_ashift,
usr/src/uts/common/fs/zfs/vdev.c
2991
(u_longlong_t)vd->vdev_asize);
usr/src/uts/common/fs/zfs/vdev.c
2995
error = vdev_metaslab_init(vd, 0);
usr/src/uts/common/fs/zfs/vdev.c
2997
vdev_dbgmsg(vd, "vdev_load: metaslab_init failed "
usr/src/uts/common/fs/zfs/vdev.c
2999
vdev_set_state(vd, B_FALSE, VDEV_STATE_CANT_OPEN,
usr/src/uts/common/fs/zfs/vdev.c
3004
uint64_t checkpoint_sm_obj = vdev_checkpoint_sm_object(vd);
usr/src/uts/common/fs/zfs/vdev.c
3006
objset_t *mos = spa_meta_objset(vd->vdev_spa);
usr/src/uts/common/fs/zfs/vdev.c
3007
ASSERT(vd->vdev_asize != 0);
usr/src/uts/common/fs/zfs/vdev.c
3008
ASSERT3P(vd->vdev_checkpoint_sm, ==, NULL);
usr/src/uts/common/fs/zfs/vdev.c
3010
error = space_map_open(&vd->vdev_checkpoint_sm,
usr/src/uts/common/fs/zfs/vdev.c
3011
mos, checkpoint_sm_obj, 0, vd->vdev_asize,
usr/src/uts/common/fs/zfs/vdev.c
3012
vd->vdev_ashift);
usr/src/uts/common/fs/zfs/vdev.c
3014
vdev_dbgmsg(vd, "vdev_load: space_map_open "
usr/src/uts/common/fs/zfs/vdev.c
3020
ASSERT3P(vd->vdev_checkpoint_sm, !=, NULL);
usr/src/uts/common/fs/zfs/vdev.c
3028
vd->vdev_stat.vs_checkpoint_space =
usr/src/uts/common/fs/zfs/vdev.c
3029
-space_map_allocated(vd->vdev_checkpoint_sm);
usr/src/uts/common/fs/zfs/vdev.c
3030
vd->vdev_spa->spa_checkpoint_info.sci_dspace +=
usr/src/uts/common/fs/zfs/vdev.c
3031
vd->vdev_stat.vs_checkpoint_space;
usr/src/uts/common/fs/zfs/vdev.c
3038
if (vd->vdev_ops->vdev_op_leaf && (error = vdev_dtl_load(vd)) != 0) {
usr/src/uts/common/fs/zfs/vdev.c
3039
vdev_set_state(vd, B_FALSE, VDEV_STATE_CANT_OPEN,
usr/src/uts/common/fs/zfs/vdev.c
3041
vdev_dbgmsg(vd, "vdev_load: vdev_dtl_load failed "
usr/src/uts/common/fs/zfs/vdev.c
3046
uint64_t obsolete_sm_object = vdev_obsolete_sm_object(vd);
usr/src/uts/common/fs/zfs/vdev.c
3048
objset_t *mos = vd->vdev_spa->spa_meta_objset;
usr/src/uts/common/fs/zfs/vdev.c
3049
ASSERT(vd->vdev_asize != 0);
usr/src/uts/common/fs/zfs/vdev.c
3050
ASSERT3P(vd->vdev_obsolete_sm, ==, NULL);
usr/src/uts/common/fs/zfs/vdev.c
3052
if ((error = space_map_open(&vd->vdev_obsolete_sm, mos,
usr/src/uts/common/fs/zfs/vdev.c
3053
obsolete_sm_object, 0, vd->vdev_asize, 0))) {
usr/src/uts/common/fs/zfs/vdev.c
3054
vdev_set_state(vd, B_FALSE, VDEV_STATE_CANT_OPEN,
usr/src/uts/common/fs/zfs/vdev.c
3056
vdev_dbgmsg(vd, "vdev_load: space_map_open failed for "
usr/src/uts/common/fs/zfs/vdev.c
3074
vdev_validate_aux(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev.c
3080
if (!vdev_readable(vd))
usr/src/uts/common/fs/zfs/vdev.c
3083
if ((label = vdev_label_read_config(vd, -1ULL)) == NULL) {
usr/src/uts/common/fs/zfs/vdev.c
3084
vdev_set_state(vd, B_TRUE, VDEV_STATE_CANT_OPEN,
usr/src/uts/common/fs/zfs/vdev.c
3092
guid != vd->vdev_guid ||
usr/src/uts/common/fs/zfs/vdev.c
3094
vdev_set_state(vd, B_TRUE, VDEV_STATE_CANT_OPEN,
usr/src/uts/common/fs/zfs/vdev.c
310
vdev_lookup_by_guid(vdev_t *vd, uint64_t guid)
usr/src/uts/common/fs/zfs/vdev.c
3109
vdev_destroy_ms_flush_data(vdev_t *vd, dmu_tx_t *tx)
usr/src/uts/common/fs/zfs/vdev.c
3111
objset_t *mos = spa_meta_objset(vd->vdev_spa);
usr/src/uts/common/fs/zfs/vdev.c
3113
if (vd->vdev_top_zap == 0)
usr/src/uts/common/fs/zfs/vdev.c
3117
int err = zap_lookup(mos, vd->vdev_top_zap,
usr/src/uts/common/fs/zfs/vdev.c
3123
VERIFY0(zap_remove(mos, vd->vdev_top_zap,
usr/src/uts/common/fs/zfs/vdev.c
3132
vdev_destroy_spacemaps(vdev_t *vd, dmu_tx_t *tx)
usr/src/uts/common/fs/zfs/vdev.c
3134
if (vd->vdev_ms_array == 0)
usr/src/uts/common/fs/zfs/vdev.c
3137
objset_t *mos = vd->vdev_spa->spa_meta_objset;
usr/src/uts/common/fs/zfs/vdev.c
3138
uint64_t array_count = vd->vdev_asize >> vd->vdev_ms_shift;
usr/src/uts/common/fs/zfs/vdev.c
314
if (vd->vdev_guid == guid)
usr/src/uts/common/fs/zfs/vdev.c
3141
VERIFY0(dmu_read(mos, vd->vdev_ms_array, 0,
usr/src/uts/common/fs/zfs/vdev.c
315
return (vd);
usr/src/uts/common/fs/zfs/vdev.c
3153
VERIFY0(dmu_object_free(mos, vd->vdev_ms_array, tx));
usr/src/uts/common/fs/zfs/vdev.c
3154
vdev_destroy_ms_flush_data(vd, tx);
usr/src/uts/common/fs/zfs/vdev.c
3155
vd->vdev_ms_array = 0;
usr/src/uts/common/fs/zfs/vdev.c
3159
vdev_remove_empty_log(vdev_t *vd, uint64_t txg)
usr/src/uts/common/fs/zfs/vdev.c
3161
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev.c
3163
ASSERT(vd->vdev_islog);
usr/src/uts/common/fs/zfs/vdev.c
3164
ASSERT(vd == vd->vdev_top);
usr/src/uts/common/fs/zfs/vdev.c
3169
vdev_destroy_spacemaps(vd, tx);
usr/src/uts/common/fs/zfs/vdev.c
317
for (int c = 0; c < vd->vdev_children; c++)
usr/src/uts/common/fs/zfs/vdev.c
3170
if (vd->vdev_top_zap != 0) {
usr/src/uts/common/fs/zfs/vdev.c
3171
vdev_destroy_unlink_zap(vd, vd->vdev_top_zap, tx);
usr/src/uts/common/fs/zfs/vdev.c
3172
vd->vdev_top_zap = 0;
usr/src/uts/common/fs/zfs/vdev.c
3179
vdev_sync_done(vdev_t *vd, uint64_t txg)
usr/src/uts/common/fs/zfs/vdev.c
318
if ((mvd = vdev_lookup_by_guid(vd->vdev_child[c], guid)) !=
usr/src/uts/common/fs/zfs/vdev.c
3182
boolean_t reassess = !txg_list_empty(&vd->vdev_ms_list, TXG_CLEAN(txg));
usr/src/uts/common/fs/zfs/vdev.c
3184
ASSERT(vdev_is_concrete(vd));
usr/src/uts/common/fs/zfs/vdev.c
3186
while ((msp = txg_list_remove(&vd->vdev_ms_list, TXG_CLEAN(txg)))
usr/src/uts/common/fs/zfs/vdev.c
3191
metaslab_sync_reassess(vd->vdev_mg);
usr/src/uts/common/fs/zfs/vdev.c
3195
vdev_sync(vdev_t *vd, uint64_t txg)
usr/src/uts/common/fs/zfs/vdev.c
3197
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev.c
3203
if (range_tree_space(vd->vdev_obsolete_segments) > 0) {
usr/src/uts/common/fs/zfs/vdev.c
3204
ASSERT(vd->vdev_removing ||
usr/src/uts/common/fs/zfs/vdev.c
3205
vd->vdev_ops == &vdev_indirect_ops);
usr/src/uts/common/fs/zfs/vdev.c
3207
vdev_indirect_sync_obsolete(vd, tx);
usr/src/uts/common/fs/zfs/vdev.c
3213
if (vd->vdev_ops == &vdev_indirect_ops) {
usr/src/uts/common/fs/zfs/vdev.c
3214
ASSERT(txg_list_empty(&vd->vdev_ms_list, txg));
usr/src/uts/common/fs/zfs/vdev.c
3215
ASSERT(txg_list_empty(&vd->vdev_dtl_list, txg));
usr/src/uts/common/fs/zfs/vdev.c
3221
ASSERT(vdev_is_concrete(vd));
usr/src/uts/common/fs/zfs/vdev.c
3223
if (vd->vdev_ms_array == 0 && vd->vdev_ms_shift != 0 &&
usr/src/uts/common/fs/zfs/vdev.c
3224
!vd->vdev_removing) {
usr/src/uts/common/fs/zfs/vdev.c
3225
ASSERT(vd == vd->vdev_top);
usr/src/uts/common/fs/zfs/vdev.c
3226
ASSERT0(vd->vdev_indirect_config.vic_mapping_object);
usr/src/uts/common/fs/zfs/vdev.c
3227
vd->vdev_ms_array = dmu_object_alloc(spa->spa_meta_objset,
usr/src/uts/common/fs/zfs/vdev.c
3229
ASSERT(vd->vdev_ms_array != 0);
usr/src/uts/common/fs/zfs/vdev.c
3230
vdev_config_dirty(vd);
usr/src/uts/common/fs/zfs/vdev.c
3233
while ((msp = txg_list_remove(&vd->vdev_ms_list, txg)) != NULL) {
usr/src/uts/common/fs/zfs/vdev.c
3235
(void) txg_list_add(&vd->vdev_ms_list, msp, TXG_CLEAN(txg));
usr/src/uts/common/fs/zfs/vdev.c
3238
while ((lvd = txg_list_remove(&vd->vdev_dtl_list, txg)) != NULL)
usr/src/uts/common/fs/zfs/vdev.c
3245
if (vd->vdev_islog && vd->vdev_stat.vs_alloc == 0 && vd->vdev_removing)
usr/src/uts/common/fs/zfs/vdev.c
3246
vdev_remove_empty_log(vd, txg);
usr/src/uts/common/fs/zfs/vdev.c
3248
(void) txg_list_add(&spa->spa_vdev_txg_list, vd, TXG_CLEAN(txg));
usr/src/uts/common/fs/zfs/vdev.c
3253
vdev_psize_to_asize(vdev_t *vd, uint64_t psize)
usr/src/uts/common/fs/zfs/vdev.c
3255
return (vd->vdev_ops->vdev_op_asize(vd, psize));
usr/src/uts/common/fs/zfs/vdev.c
326
vdev_count_leaves_impl(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev.c
3265
vdev_t *vd, *tvd;
usr/src/uts/common/fs/zfs/vdev.c
3269
if ((vd = spa_lookup_by_guid(spa, guid, B_TRUE)) == NULL)
usr/src/uts/common/fs/zfs/vdev.c
3272
if (!vd->vdev_ops->vdev_op_leaf)
usr/src/uts/common/fs/zfs/vdev.c
3275
tvd = vd->vdev_top;
usr/src/uts/common/fs/zfs/vdev.c
3282
vd->vdev_label_aux = aux;
usr/src/uts/common/fs/zfs/vdev.c
3287
vd->vdev_delayed_close = B_FALSE;
usr/src/uts/common/fs/zfs/vdev.c
3288
vd->vdev_faulted = 1ULL;
usr/src/uts/common/fs/zfs/vdev.c
3289
vd->vdev_degraded = 0ULL;
usr/src/uts/common/fs/zfs/vdev.c
3290
vdev_set_state(vd, B_FALSE, VDEV_STATE_FAULTED, aux);
usr/src/uts/common/fs/zfs/vdev.c
3296
if (!tvd->vdev_islog && vd->vdev_aux == NULL && vdev_dtl_required(vd)) {
usr/src/uts/common/fs/zfs/vdev.c
3297
vd->vdev_degraded = 1ULL;
usr/src/uts/common/fs/zfs/vdev.c
3298
vd->vdev_faulted = 0ULL;
usr/src/uts/common/fs/zfs/vdev.c
330
if (vd->vdev_ops->vdev_op_leaf)
usr/src/uts/common/fs/zfs/vdev.c
3306
if (vdev_readable(vd))
usr/src/uts/common/fs/zfs/vdev.c
3307
vdev_set_state(vd, B_FALSE, VDEV_STATE_DEGRADED, aux);
usr/src/uts/common/fs/zfs/vdev.c
3310
return (spa_vdev_state_exit(spa, vd, 0));
usr/src/uts/common/fs/zfs/vdev.c
3321
vdev_t *vd;
usr/src/uts/common/fs/zfs/vdev.c
3325
if ((vd = spa_lookup_by_guid(spa, guid, B_TRUE)) == NULL)
usr/src/uts/common/fs/zfs/vdev.c
3328
if (!vd->vdev_ops->vdev_op_leaf)
usr/src/uts/common/fs/zfs/vdev.c
333
for (int c = 0; c < vd->vdev_children; c++)
usr/src/uts/common/fs/zfs/vdev.c
3334
if (vd->vdev_faulted || vd->vdev_degraded)
usr/src/uts/common/fs/zfs/vdev.c
3337
vd->vdev_degraded = 1ULL;
usr/src/uts/common/fs/zfs/vdev.c
3338
if (!vdev_is_dead(vd))
usr/src/uts/common/fs/zfs/vdev.c
3339
vdev_set_state(vd, B_FALSE, VDEV_STATE_DEGRADED,
usr/src/uts/common/fs/zfs/vdev.c
334
n += vdev_count_leaves_impl(vd->vdev_child[c]);
usr/src/uts/common/fs/zfs/vdev.c
3342
return (spa_vdev_state_exit(spa, vd, 0));
usr/src/uts/common/fs/zfs/vdev.c
3356
vdev_t *vd, *tvd, *pvd, *rvd = spa->spa_root_vdev;
usr/src/uts/common/fs/zfs/vdev.c
3362
if ((vd = spa_lookup_by_guid(spa, guid, B_TRUE)) == NULL)
usr/src/uts/common/fs/zfs/vdev.c
3365
if (!vd->vdev_ops->vdev_op_leaf)
usr/src/uts/common/fs/zfs/vdev.c
3368
wasoffline = (vd->vdev_offline || vd->vdev_tmpoffline);
usr/src/uts/common/fs/zfs/vdev.c
3369
oldstate = vd->vdev_state;
usr/src/uts/common/fs/zfs/vdev.c
3371
tvd = vd->vdev_top;
usr/src/uts/common/fs/zfs/vdev.c
3372
vd->vdev_offline = B_FALSE;
usr/src/uts/common/fs/zfs/vdev.c
3373
vd->vdev_tmpoffline = B_FALSE;
usr/src/uts/common/fs/zfs/vdev.c
3374
vd->vdev_checkremove = !!(flags & ZFS_ONLINE_CHECKREMOVE);
usr/src/uts/common/fs/zfs/vdev.c
3375
vd->vdev_forcefault = !!(flags & ZFS_ONLINE_FORCEFAULT);
usr/src/uts/common/fs/zfs/vdev.c
3378
if (!vd->vdev_aux) {
usr/src/uts/common/fs/zfs/vdev.c
3379
for (pvd = vd; pvd != rvd; pvd = pvd->vdev_parent)
usr/src/uts/common/fs/zfs/vdev.c
3384
vd->vdev_checkremove = vd->vdev_forcefault = B_FALSE;
usr/src/uts/common/fs/zfs/vdev.c
3386
if (!vd->vdev_aux) {
usr/src/uts/common/fs/zfs/vdev.c
3387
for (pvd = vd; pvd != rvd; pvd = pvd->vdev_parent)
usr/src/uts/common/fs/zfs/vdev.c
3392
*newstate = vd->vdev_state;
usr/src/uts/common/fs/zfs/vdev.c
3394
!vdev_is_dead(vd) && vd->vdev_parent &&
usr/src/uts/common/fs/zfs/vdev.c
3395
vd->vdev_parent->vdev_ops == &vdev_spare_ops &&
usr/src/uts/common/fs/zfs/vdev.c
3396
vd->vdev_parent->vdev_child[0] == vd)
usr/src/uts/common/fs/zfs/vdev.c
3397
vd->vdev_unspare = B_TRUE;
usr/src/uts/common/fs/zfs/vdev.c
3402
if (vd->vdev_aux)
usr/src/uts/common/fs/zfs/vdev.c
3403
return (spa_vdev_state_exit(spa, vd, ENOTSUP));
usr/src/uts/common/fs/zfs/vdev.c
3408
mutex_enter(&vd->vdev_initialize_lock);
usr/src/uts/common/fs/zfs/vdev.c
3409
if (vdev_writeable(vd) &&
usr/src/uts/common/fs/zfs/vdev.c
3410
vd->vdev_initialize_thread == NULL &&
usr/src/uts/common/fs/zfs/vdev.c
3411
vd->vdev_initialize_state == VDEV_INITIALIZE_ACTIVE) {
usr/src/uts/common/fs/zfs/vdev.c
3412
(void) vdev_initialize(vd);
usr/src/uts/common/fs/zfs/vdev.c
3414
mutex_exit(&vd->vdev_initialize_lock);
usr/src/uts/common/fs/zfs/vdev.c
3417
mutex_enter(&vd->vdev_trim_lock);
usr/src/uts/common/fs/zfs/vdev.c
3418
if (vdev_writeable(vd) &&
usr/src/uts/common/fs/zfs/vdev.c
3419
vd->vdev_trim_thread == NULL &&
usr/src/uts/common/fs/zfs/vdev.c
3420
vd->vdev_trim_state == VDEV_TRIM_ACTIVE) {
usr/src/uts/common/fs/zfs/vdev.c
3421
(void) vdev_trim(vd, vd->vdev_trim_rate, vd->vdev_trim_partial,
usr/src/uts/common/fs/zfs/vdev.c
3422
vd->vdev_trim_secure);
usr/src/uts/common/fs/zfs/vdev.c
3424
mutex_exit(&vd->vdev_trim_lock);
usr/src/uts/common/fs/zfs/vdev.c
3428
vd->vdev_state >= VDEV_STATE_DEGRADED))
usr/src/uts/common/fs/zfs/vdev.c
3429
spa_event_notify(spa, vd, NULL, ESC_ZFS_VDEV_ONLINE);
usr/src/uts/common/fs/zfs/vdev.c
3431
return (spa_vdev_state_exit(spa, vd, 0));
usr/src/uts/common/fs/zfs/vdev.c
3437
vdev_t *vd, *tvd;
usr/src/uts/common/fs/zfs/vdev.c
3445
if ((vd = spa_lookup_by_guid(spa, guid, B_TRUE)) == NULL)
usr/src/uts/common/fs/zfs/vdev.c
3448
if (!vd->vdev_ops->vdev_op_leaf)
usr/src/uts/common/fs/zfs/vdev.c
3451
tvd = vd->vdev_top;
usr/src/uts/common/fs/zfs/vdev.c
3458
if (!vd->vdev_offline) {
usr/src/uts/common/fs/zfs/vdev.c
3464
if (!tvd->vdev_islog && vd->vdev_aux == NULL &&
usr/src/uts/common/fs/zfs/vdev.c
3465
vdev_dtl_required(vd))
usr/src/uts/common/fs/zfs/vdev.c
3479
(void) spa_vdev_state_exit(spa, vd, 0);
usr/src/uts/common/fs/zfs/vdev.c
3501
vd, error));
usr/src/uts/common/fs/zfs/vdev.c
3502
(void) spa_vdev_state_exit(spa, vd, 0);
usr/src/uts/common/fs/zfs/vdev.c
3514
vd->vdev_offline = B_TRUE;
usr/src/uts/common/fs/zfs/vdev.c
3517
if (!tvd->vdev_islog && vd->vdev_aux == NULL &&
usr/src/uts/common/fs/zfs/vdev.c
3519
vd->vdev_offline = B_FALSE;
usr/src/uts/common/fs/zfs/vdev.c
3532
vd->vdev_tmpoffline = !!(flags & ZFS_OFFLINE_TEMPORARY);
usr/src/uts/common/fs/zfs/vdev.c
3534
return (spa_vdev_state_exit(spa, vd, 0));
usr/src/uts/common/fs/zfs/vdev.c
3555
vdev_clear(spa_t *spa, vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev.c
3561
if (vd == NULL)
usr/src/uts/common/fs/zfs/vdev.c
3562
vd = rvd;
usr/src/uts/common/fs/zfs/vdev.c
3564
vd->vdev_stat.vs_read_errors = 0;
usr/src/uts/common/fs/zfs/vdev.c
3565
vd->vdev_stat.vs_write_errors = 0;
usr/src/uts/common/fs/zfs/vdev.c
3566
vd->vdev_stat.vs_checksum_errors = 0;
usr/src/uts/common/fs/zfs/vdev.c
3567
vd->vdev_stat.vs_slow_ios = 0;
usr/src/uts/common/fs/zfs/vdev.c
3569
for (int c = 0; c < vd->vdev_children; c++)
usr/src/uts/common/fs/zfs/vdev.c
3570
vdev_clear(spa, vd->vdev_child[c]);
usr/src/uts/common/fs/zfs/vdev.c
3575
if (!vdev_is_concrete(vd))
usr/src/uts/common/fs/zfs/vdev.c
3584
if (vd->vdev_faulted || vd->vdev_degraded ||
usr/src/uts/common/fs/zfs/vdev.c
3585
!vdev_readable(vd) || !vdev_writeable(vd)) {
usr/src/uts/common/fs/zfs/vdev.c
3592
vd->vdev_forcefault = B_TRUE;
usr/src/uts/common/fs/zfs/vdev.c
3594
vd->vdev_faulted = vd->vdev_degraded = 0ULL;
usr/src/uts/common/fs/zfs/vdev.c
3595
vd->vdev_cant_read = B_FALSE;
usr/src/uts/common/fs/zfs/vdev.c
3596
vd->vdev_cant_write = B_FALSE;
usr/src/uts/common/fs/zfs/vdev.c
3598
vdev_reopen(vd == rvd ? rvd : vd->vdev_top);
usr/src/uts/common/fs/zfs/vdev.c
3600
vd->vdev_forcefault = B_FALSE;
usr/src/uts/common/fs/zfs/vdev.c
3602
if (vd != rvd && vdev_writeable(vd->vdev_top))
usr/src/uts/common/fs/zfs/vdev.c
3603
vdev_state_dirty(vd->vdev_top);
usr/src/uts/common/fs/zfs/vdev.c
3606
if (vd->vdev_aux == NULL && !vdev_is_dead(vd) &&
usr/src/uts/common/fs/zfs/vdev.c
3611
spa_event_notify(spa, vd, NULL, ESC_ZFS_VDEV_CLEAR);
usr/src/uts/common/fs/zfs/vdev.c
3619
if (!vdev_is_dead(vd) && vd->vdev_parent != NULL &&
usr/src/uts/common/fs/zfs/vdev.c
3620
vd->vdev_parent->vdev_ops == &vdev_spare_ops &&
usr/src/uts/common/fs/zfs/vdev.c
3621
vd->vdev_parent->vdev_child[0] == vd)
usr/src/uts/common/fs/zfs/vdev.c
3622
vd->vdev_unspare = B_TRUE;
usr/src/uts/common/fs/zfs/vdev.c
3626
vdev_is_dead(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev.c
3635
return (vd->vdev_state < VDEV_STATE_DEGRADED ||
usr/src/uts/common/fs/zfs/vdev.c
3636
vd->vdev_ops == &vdev_hole_ops ||
usr/src/uts/common/fs/zfs/vdev.c
3637
vd->vdev_ops == &vdev_missing_ops);
usr/src/uts/common/fs/zfs/vdev.c
3641
vdev_readable(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev.c
3643
return (!vdev_is_dead(vd) && !vd->vdev_cant_read);
usr/src/uts/common/fs/zfs/vdev.c
3647
vdev_writeable(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev.c
3649
return (!vdev_is_dead(vd) && !vd->vdev_cant_write &&
usr/src/uts/common/fs/zfs/vdev.c
3650
vdev_is_concrete(vd));
usr/src/uts/common/fs/zfs/vdev.c
3654
vdev_allocatable(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev.c
3656
uint64_t state = vd->vdev_state;
usr/src/uts/common/fs/zfs/vdev.c
3667
!vd->vdev_cant_write && vdev_is_concrete(vd) &&
usr/src/uts/common/fs/zfs/vdev.c
3668
vd->vdev_mg->mg_initialized);
usr/src/uts/common/fs/zfs/vdev.c
3672
vdev_accessible(vdev_t *vd, zio_t *zio)
usr/src/uts/common/fs/zfs/vdev.c
3674
ASSERT(zio->io_vd == vd);
usr/src/uts/common/fs/zfs/vdev.c
3676
if (vdev_is_dead(vd) || vd->vdev_remove_wanted)
usr/src/uts/common/fs/zfs/vdev.c
3680
return (!vd->vdev_cant_read);
usr/src/uts/common/fs/zfs/vdev.c
3683
return (!vd->vdev_cant_write);
usr/src/uts/common/fs/zfs/vdev.c
3734
vdev_is_spacemap_addressable(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev.c
3736
if (spa_feature_is_active(vd->vdev_spa, SPA_FEATURE_SPACEMAP_V2))
usr/src/uts/common/fs/zfs/vdev.c
3746
uint64_t shift = vd->vdev_ashift + SM_OFFSET_BITS;
usr/src/uts/common/fs/zfs/vdev.c
3751
return (vd->vdev_asize < (1ULL << shift));
usr/src/uts/common/fs/zfs/vdev.c
3758
vdev_get_stats_ex_impl(vdev_t *vd, vdev_stat_t *vs, vdev_stat_ex_t *vsx)
usr/src/uts/common/fs/zfs/vdev.c
3765
if (!vd->vdev_ops->vdev_op_leaf) {
usr/src/uts/common/fs/zfs/vdev.c
3773
for (int c = 0; c < vd->vdev_children; c++) {
usr/src/uts/common/fs/zfs/vdev.c
3774
vdev_t *cvd = vd->vdev_child[c];
usr/src/uts/common/fs/zfs/vdev.c
3793
memcpy(vsx, &vd->vdev_stat_ex, sizeof (vd->vdev_stat_ex));
usr/src/uts/common/fs/zfs/vdev.c
3795
for (t = 0; t < ARRAY_SIZE(vd->vdev_queue.vq_class); t++) {
usr/src/uts/common/fs/zfs/vdev.c
3797
vd->vdev_queue.vq_class[t].vqc_active;
usr/src/uts/common/fs/zfs/vdev.c
3799
&vd->vdev_queue.vq_class[t].vqc_queued_tree);
usr/src/uts/common/fs/zfs/vdev.c
3805
vdev_get_stats_ex(vdev_t *vd, vdev_stat_t *vs, vdev_stat_ex_t *vsx)
usr/src/uts/common/fs/zfs/vdev.c
3807
vdev_t *tvd = vd->vdev_top;
usr/src/uts/common/fs/zfs/vdev.c
3808
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev.c
3810
mutex_enter(&vd->vdev_stat_lock);
usr/src/uts/common/fs/zfs/vdev.c
3812
bcopy(&vd->vdev_stat, vs, sizeof (*vs));
usr/src/uts/common/fs/zfs/vdev.c
3814
vs->vs_state = vd->vdev_state;
usr/src/uts/common/fs/zfs/vdev.c
3815
vs->vs_rsize = vdev_get_min_asize(vd);
usr/src/uts/common/fs/zfs/vdev.c
3816
if (vd->vdev_ops->vdev_op_leaf) {
usr/src/uts/common/fs/zfs/vdev.c
3825
vd->vdev_initialize_bytes_done;
usr/src/uts/common/fs/zfs/vdev.c
3827
vd->vdev_initialize_bytes_est;
usr/src/uts/common/fs/zfs/vdev.c
3828
vs->vs_initialize_state = vd->vdev_initialize_state;
usr/src/uts/common/fs/zfs/vdev.c
3830
vd->vdev_initialize_action_time;
usr/src/uts/common/fs/zfs/vdev.c
3837
vs->vs_trim_notsup = !vd->vdev_has_trim;
usr/src/uts/common/fs/zfs/vdev.c
3838
vs->vs_trim_bytes_done = vd->vdev_trim_bytes_done;
usr/src/uts/common/fs/zfs/vdev.c
3839
vs->vs_trim_bytes_est = vd->vdev_trim_bytes_est;
usr/src/uts/common/fs/zfs/vdev.c
3840
vs->vs_trim_state = vd->vdev_trim_state;
usr/src/uts/common/fs/zfs/vdev.c
3841
vs->vs_trim_action_time = vd->vdev_trim_action_time;
usr/src/uts/common/fs/zfs/vdev.c
3849
if (vd->vdev_aux == NULL && tvd != NULL) {
usr/src/uts/common/fs/zfs/vdev.c
3851
vd->vdev_max_asize - vd->vdev_asize -
usr/src/uts/common/fs/zfs/vdev.c
3854
if (vd->vdev_aux == NULL && vd == vd->vdev_top &&
usr/src/uts/common/fs/zfs/vdev.c
3855
vdev_is_concrete(vd)) {
usr/src/uts/common/fs/zfs/vdev.c
3856
vs->vs_fragmentation = (vd->vdev_mg != NULL) ?
usr/src/uts/common/fs/zfs/vdev.c
3857
vd->vdev_mg->mg_fragmentation : 0;
usr/src/uts/common/fs/zfs/vdev.c
3859
if (vd->vdev_ops->vdev_op_leaf)
usr/src/uts/common/fs/zfs/vdev.c
3860
vs->vs_resilver_deferred = vd->vdev_resilver_deferred;
usr/src/uts/common/fs/zfs/vdev.c
3863
vdev_get_stats_ex_impl(vd, vs, vsx);
usr/src/uts/common/fs/zfs/vdev.c
3864
mutex_exit(&vd->vdev_stat_lock);
usr/src/uts/common/fs/zfs/vdev.c
3868
vdev_get_stats(vdev_t *vd, vdev_stat_t *vs)
usr/src/uts/common/fs/zfs/vdev.c
3870
return (vdev_get_stats_ex(vd, vs, NULL));
usr/src/uts/common/fs/zfs/vdev.c
3874
vdev_clear_stats(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev.c
3876
mutex_enter(&vd->vdev_stat_lock);
usr/src/uts/common/fs/zfs/vdev.c
3877
vd->vdev_stat.vs_space = 0;
usr/src/uts/common/fs/zfs/vdev.c
3878
vd->vdev_stat.vs_dspace = 0;
usr/src/uts/common/fs/zfs/vdev.c
3879
vd->vdev_stat.vs_alloc = 0;
usr/src/uts/common/fs/zfs/vdev.c
3880
mutex_exit(&vd->vdev_stat_lock);
usr/src/uts/common/fs/zfs/vdev.c
3884
vdev_scan_stat_init(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev.c
3886
vdev_stat_t *vs = &vd->vdev_stat;
usr/src/uts/common/fs/zfs/vdev.c
3888
for (int c = 0; c < vd->vdev_children; c++)
usr/src/uts/common/fs/zfs/vdev.c
3889
vdev_scan_stat_init(vd->vdev_child[c]);
usr/src/uts/common/fs/zfs/vdev.c
3891
mutex_enter(&vd->vdev_stat_lock);
usr/src/uts/common/fs/zfs/vdev.c
3893
mutex_exit(&vd->vdev_stat_lock);
usr/src/uts/common/fs/zfs/vdev.c
3901
vdev_t *vd = zio->io_vd ? zio->io_vd : rvd;
usr/src/uts/common/fs/zfs/vdev.c
3904
vdev_stat_t *vs = &vd->vdev_stat;
usr/src/uts/common/fs/zfs/vdev.c
3905
vdev_stat_ex_t *vsx = &vd->vdev_stat_ex;
usr/src/uts/common/fs/zfs/vdev.c
3930
if (vd == rvd)
usr/src/uts/common/fs/zfs/vdev.c
3933
ASSERT(vd == zio->io_vd);
usr/src/uts/common/fs/zfs/vdev.c
3938
mutex_enter(&vd->vdev_stat_lock);
usr/src/uts/common/fs/zfs/vdev.c
3947
if (vd->vdev_ops->vdev_op_leaf)
usr/src/uts/common/fs/zfs/vdev.c
3960
if (vd->vdev_ops->vdev_op_leaf &&
usr/src/uts/common/fs/zfs/vdev.c
3993
mutex_exit(&vd->vdev_stat_lock);
usr/src/uts/common/fs/zfs/vdev.c
4018
mutex_enter(&vd->vdev_stat_lock);
usr/src/uts/common/fs/zfs/vdev.c
4019
if (type == ZIO_TYPE_READ && !vdev_is_dead(vd)) {
usr/src/uts/common/fs/zfs/vdev.c
4025
if (type == ZIO_TYPE_WRITE && !vdev_is_dead(vd))
usr/src/uts/common/fs/zfs/vdev.c
4027
mutex_exit(&vd->vdev_stat_lock);
usr/src/uts/common/fs/zfs/vdev.c
4049
if (vd->vdev_ops->vdev_op_leaf) {
usr/src/uts/common/fs/zfs/vdev.c
4054
vdev_dtl_dirty(vd, DTL_SCRUB, txg, 1);
usr/src/uts/common/fs/zfs/vdev.c
4061
if (vdev_dtl_contains(vd, DTL_MISSING, txg, 1))
usr/src/uts/common/fs/zfs/vdev.c
4063
for (pvd = vd; pvd != rvd; pvd = pvd->vdev_parent)
usr/src/uts/common/fs/zfs/vdev.c
4065
vdev_dirty(vd->vdev_top, VDD_DTL, vd, commit_txg);
usr/src/uts/common/fs/zfs/vdev.c
4067
if (vd != rvd)
usr/src/uts/common/fs/zfs/vdev.c
4068
vdev_dtl_dirty(vd, DTL_MISSING, txg, 1);
usr/src/uts/common/fs/zfs/vdev.c
4073
vdev_deflated_space(vdev_t *vd, int64_t space)
usr/src/uts/common/fs/zfs/vdev.c
4076
ASSERT(vd->vdev_deflate_ratio != 0 || vd->vdev_isl2cache);
usr/src/uts/common/fs/zfs/vdev.c
4078
return ((space >> SPA_MINBLOCKSHIFT) * vd->vdev_deflate_ratio);
usr/src/uts/common/fs/zfs/vdev.c
4086
vdev_space_update(vdev_t *vd, int64_t alloc_delta, int64_t defer_delta,
usr/src/uts/common/fs/zfs/vdev.c
4090
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev.c
4093
ASSERT(vd == vd->vdev_top);
usr/src/uts/common/fs/zfs/vdev.c
4101
dspace_delta = vdev_deflated_space(vd, space_delta);
usr/src/uts/common/fs/zfs/vdev.c
4103
mutex_enter(&vd->vdev_stat_lock);
usr/src/uts/common/fs/zfs/vdev.c
4106
ASSERT3U(vd->vdev_stat.vs_alloc, >=, -alloc_delta);
usr/src/uts/common/fs/zfs/vdev.c
4109
vd->vdev_stat.vs_alloc += alloc_delta;
usr/src/uts/common/fs/zfs/vdev.c
4110
vd->vdev_stat.vs_space += space_delta;
usr/src/uts/common/fs/zfs/vdev.c
4111
vd->vdev_stat.vs_dspace += dspace_delta;
usr/src/uts/common/fs/zfs/vdev.c
4112
mutex_exit(&vd->vdev_stat_lock);
usr/src/uts/common/fs/zfs/vdev.c
4115
if (vd->vdev_mg != NULL && !vd->vdev_islog) {
usr/src/uts/common/fs/zfs/vdev.c
4116
ASSERT(!vd->vdev_isl2cache);
usr/src/uts/common/fs/zfs/vdev.c
4132
vdev_config_dirty(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev.c
4134
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev.c
4144
if (vd->vdev_aux != NULL) {
usr/src/uts/common/fs/zfs/vdev.c
4145
spa_aux_vdev_t *sav = vd->vdev_aux;
usr/src/uts/common/fs/zfs/vdev.c
4150
if (sav->sav_vdevs[c] == vd)
usr/src/uts/common/fs/zfs/vdev.c
4177
aux[c] = vdev_config_generate(spa, vd, B_TRUE, 0);
usr/src/uts/common/fs/zfs/vdev.c
4192
if (vd == rvd) {
usr/src/uts/common/fs/zfs/vdev.c
4196
ASSERT(vd == vd->vdev_top);
usr/src/uts/common/fs/zfs/vdev.c
4198
if (!list_link_active(&vd->vdev_config_dirty_node) &&
usr/src/uts/common/fs/zfs/vdev.c
4199
vdev_is_concrete(vd)) {
usr/src/uts/common/fs/zfs/vdev.c
4200
list_insert_head(&spa->spa_config_dirty_list, vd);
usr/src/uts/common/fs/zfs/vdev.c
4206
vdev_config_clean(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev.c
4208
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev.c
4214
ASSERT(list_link_active(&vd->vdev_config_dirty_node));
usr/src/uts/common/fs/zfs/vdev.c
4215
list_remove(&spa->spa_config_dirty_list, vd);
usr/src/uts/common/fs/zfs/vdev.c
4225
vdev_state_dirty(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev.c
4227
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev.c
4230
ASSERT(vd == vd->vdev_top);
usr/src/uts/common/fs/zfs/vdev.c
4242
if (!list_link_active(&vd->vdev_state_dirty_node) &&
usr/src/uts/common/fs/zfs/vdev.c
4243
vdev_is_concrete(vd))
usr/src/uts/common/fs/zfs/vdev.c
4244
list_insert_head(&spa->spa_state_dirty_list, vd);
usr/src/uts/common/fs/zfs/vdev.c
4248
vdev_state_clean(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev.c
4250
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev.c
4256
ASSERT(list_link_active(&vd->vdev_state_dirty_node));
usr/src/uts/common/fs/zfs/vdev.c
4257
list_remove(&spa->spa_state_dirty_list, vd);
usr/src/uts/common/fs/zfs/vdev.c
4264
vdev_propagate_state(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev.c
4266
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev.c
4272
if (vd->vdev_children > 0) {
usr/src/uts/common/fs/zfs/vdev.c
4273
for (int c = 0; c < vd->vdev_children; c++) {
usr/src/uts/common/fs/zfs/vdev.c
4274
child = vd->vdev_child[c];
usr/src/uts/common/fs/zfs/vdev.c
4290
if (child->vdev_islog && vd == rvd)
usr/src/uts/common/fs/zfs/vdev.c
4302
vd->vdev_ops->vdev_op_state_change(vd, faulted, degraded);
usr/src/uts/common/fs/zfs/vdev.c
4310
if (corrupted && vd == rvd &&
usr/src/uts/common/fs/zfs/vdev.c
4316
if (vd->vdev_parent)
usr/src/uts/common/fs/zfs/vdev.c
4317
vdev_propagate_state(vd->vdev_parent);
usr/src/uts/common/fs/zfs/vdev.c
4329
vdev_set_state(vdev_t *vd, boolean_t isopen, vdev_state_t state, vdev_aux_t aux)
usr/src/uts/common/fs/zfs/vdev.c
4332
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev.c
4334
if (state == vd->vdev_state) {
usr/src/uts/common/fs/zfs/vdev.c
4335
vd->vdev_stat.vs_aux = aux;
usr/src/uts/common/fs/zfs/vdev.c
4339
save_state = vd->vdev_state;
usr/src/uts/common/fs/zfs/vdev.c
4341
vd->vdev_state = state;
usr/src/uts/common/fs/zfs/vdev.c
4342
vd->vdev_stat.vs_aux = aux;
usr/src/uts/common/fs/zfs/vdev.c
4354
if (!vd->vdev_delayed_close && vdev_is_dead(vd) &&
usr/src/uts/common/fs/zfs/vdev.c
4355
vd->vdev_ops->vdev_op_leaf)
usr/src/uts/common/fs/zfs/vdev.c
4356
vd->vdev_ops->vdev_op_close(vd);
usr/src/uts/common/fs/zfs/vdev.c
4367
if (state == VDEV_STATE_HEALTHY && vd->vdev_ops->vdev_op_leaf &&
usr/src/uts/common/fs/zfs/vdev.c
4368
vd->vdev_prevstate != state)
usr/src/uts/common/fs/zfs/vdev.c
4369
zfs_post_state_change(spa, vd);
usr/src/uts/common/fs/zfs/vdev.c
4371
if (vd->vdev_removed &&
usr/src/uts/common/fs/zfs/vdev.c
4373
(aux == VDEV_AUX_OPEN_FAILED || vd->vdev_checkremove)) {
usr/src/uts/common/fs/zfs/vdev.c
4383
vd->vdev_state = VDEV_STATE_REMOVED;
usr/src/uts/common/fs/zfs/vdev.c
4384
vd->vdev_stat.vs_aux = VDEV_AUX_NONE;
usr/src/uts/common/fs/zfs/vdev.c
4386
vd->vdev_removed = B_TRUE;
usr/src/uts/common/fs/zfs/vdev.c
4396
vd->vdev_ops->vdev_op_leaf)
usr/src/uts/common/fs/zfs/vdev.c
4397
vd->vdev_not_present = 1;
usr/src/uts/common/fs/zfs/vdev.c
4414
if ((vd->vdev_prevstate != state || vd->vdev_forcefault) &&
usr/src/uts/common/fs/zfs/vdev.c
4415
!vd->vdev_not_present && !vd->vdev_checkremove &&
usr/src/uts/common/fs/zfs/vdev.c
4416
vd != spa->spa_root_vdev) {
usr/src/uts/common/fs/zfs/vdev.c
4445
(void) zfs_ereport_post(class, spa, vd, NULL, NULL,
usr/src/uts/common/fs/zfs/vdev.c
4450
vd->vdev_removed = B_FALSE;
usr/src/uts/common/fs/zfs/vdev.c
4452
vd->vdev_removed = B_FALSE;
usr/src/uts/common/fs/zfs/vdev.c
4455
if (!isopen && vd->vdev_parent)
usr/src/uts/common/fs/zfs/vdev.c
4456
vdev_propagate_state(vd->vdev_parent);
usr/src/uts/common/fs/zfs/vdev.c
4460
vdev_children_are_offline(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev.c
4462
ASSERT(!vd->vdev_ops->vdev_op_leaf);
usr/src/uts/common/fs/zfs/vdev.c
4464
for (uint64_t i = 0; i < vd->vdev_children; i++) {
usr/src/uts/common/fs/zfs/vdev.c
4465
if (vd->vdev_child[i]->vdev_state != VDEV_STATE_OFFLINE)
usr/src/uts/common/fs/zfs/vdev.c
4477
vdev_is_bootable(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev.c
4479
if (!vd->vdev_ops->vdev_op_leaf) {
usr/src/uts/common/fs/zfs/vdev.c
4480
char *vdev_type = vd->vdev_ops->vdev_op_type;
usr/src/uts/common/fs/zfs/vdev.c
4487
for (int c = 0; c < vd->vdev_children; c++) {
usr/src/uts/common/fs/zfs/vdev.c
4488
if (!vdev_is_bootable(vd->vdev_child[c]))
usr/src/uts/common/fs/zfs/vdev.c
4495
vdev_is_concrete(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev.c
4497
vdev_ops_t *ops = vd->vdev_ops;
usr/src/uts/common/fs/zfs/vdev.c
4512
vdev_log_state_valid(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev.c
4514
if (vd->vdev_ops->vdev_op_leaf && !vd->vdev_faulted &&
usr/src/uts/common/fs/zfs/vdev.c
4515
!vd->vdev_removed)
usr/src/uts/common/fs/zfs/vdev.c
4518
for (int c = 0; c < vd->vdev_children; c++)
usr/src/uts/common/fs/zfs/vdev.c
4519
if (vdev_log_state_valid(vd->vdev_child[c]))
usr/src/uts/common/fs/zfs/vdev.c
4529
vdev_expand(vdev_t *vd, uint64_t txg)
usr/src/uts/common/fs/zfs/vdev.c
4531
ASSERT(vd->vdev_top == vd);
usr/src/uts/common/fs/zfs/vdev.c
4532
ASSERT(spa_config_held(vd->vdev_spa, SCL_ALL, RW_WRITER) == SCL_ALL);
usr/src/uts/common/fs/zfs/vdev.c
4533
ASSERT(vdev_is_concrete(vd));
usr/src/uts/common/fs/zfs/vdev.c
4535
vdev_set_deflate_ratio(vd);
usr/src/uts/common/fs/zfs/vdev.c
4537
if ((vd->vdev_asize >> vd->vdev_ms_shift) > vd->vdev_ms_count &&
usr/src/uts/common/fs/zfs/vdev.c
4538
vdev_is_concrete(vd)) {
usr/src/uts/common/fs/zfs/vdev.c
4539
vdev_metaslab_group_create(vd);
usr/src/uts/common/fs/zfs/vdev.c
4540
VERIFY(vdev_metaslab_init(vd, txg) == 0);
usr/src/uts/common/fs/zfs/vdev.c
4541
vdev_config_dirty(vd);
usr/src/uts/common/fs/zfs/vdev.c
4549
vdev_split(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev.c
4551
vdev_t *cvd, *pvd = vd->vdev_parent;
usr/src/uts/common/fs/zfs/vdev.c
4553
vdev_remove_child(pvd, vd);
usr/src/uts/common/fs/zfs/vdev.c
4565
vdev_deadman(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev.c
4567
for (int c = 0; c < vd->vdev_children; c++) {
usr/src/uts/common/fs/zfs/vdev.c
4568
vdev_t *cvd = vd->vdev_child[c];
usr/src/uts/common/fs/zfs/vdev.c
4573
if (vd->vdev_ops->vdev_op_leaf) {
usr/src/uts/common/fs/zfs/vdev.c
4574
vdev_queue_t *vq = &vd->vdev_queue;
usr/src/uts/common/fs/zfs/vdev.c
4578
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev.c
4590
vdev_dbgmsg(vd, "SLOW IO: zio timestamp "
usr/src/uts/common/fs/zfs/vdev.c
4603
vdev_defer_resilver(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev.c
4605
ASSERT(vd->vdev_ops->vdev_op_leaf);
usr/src/uts/common/fs/zfs/vdev.c
4607
vd->vdev_resilver_deferred = B_TRUE;
usr/src/uts/common/fs/zfs/vdev.c
4608
vd->vdev_spa->spa_resilver_deferred = B_TRUE;
usr/src/uts/common/fs/zfs/vdev.c
4617
vdev_clear_resilver_deferred(vdev_t *vd, dmu_tx_t *tx)
usr/src/uts/common/fs/zfs/vdev.c
4620
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev.c
4622
for (int c = 0; c < vd->vdev_children; c++) {
usr/src/uts/common/fs/zfs/vdev.c
4623
vdev_t *cvd = vd->vdev_child[c];
usr/src/uts/common/fs/zfs/vdev.c
4627
if (vd == spa->spa_root_vdev &&
usr/src/uts/common/fs/zfs/vdev.c
4630
vdev_config_dirty(vd);
usr/src/uts/common/fs/zfs/vdev.c
4635
if (!vdev_is_concrete(vd) || vd->vdev_aux ||
usr/src/uts/common/fs/zfs/vdev.c
4636
!vd->vdev_ops->vdev_op_leaf)
usr/src/uts/common/fs/zfs/vdev.c
4639
vd->vdev_resilver_deferred = B_FALSE;
usr/src/uts/common/fs/zfs/vdev.c
4641
return (!vdev_is_dead(vd) && !vd->vdev_offline &&
usr/src/uts/common/fs/zfs/vdev.c
4642
vdev_resilver_needed(vd, NULL, NULL));
usr/src/uts/common/fs/zfs/vdev.c
4654
vdev_xlate(vdev_t *vd, const range_seg64_t *logical_rs,
usr/src/uts/common/fs/zfs/vdev.c
4660
if (vd != vd->vdev_top) {
usr/src/uts/common/fs/zfs/vdev.c
4661
vdev_xlate(vd->vdev_parent, logical_rs, physical_rs);
usr/src/uts/common/fs/zfs/vdev.c
4673
vdev_t *pvd = vd->vdev_parent;
usr/src/uts/common/fs/zfs/vdev.c
4683
pvd->vdev_ops->vdev_op_xlate(vd, physical_rs, &intermediate);
usr/src/uts/common/fs/zfs/vdev.c
485
vdev_t *vd;
usr/src/uts/common/fs/zfs/vdev.c
488
vd = kmem_zalloc(sizeof (vdev_t), KM_SLEEP);
usr/src/uts/common/fs/zfs/vdev.c
489
vic = &vd->vdev_indirect_config;
usr/src/uts/common/fs/zfs/vdev.c
493
spa->spa_root_vdev = vd;
usr/src/uts/common/fs/zfs/vdev.c
498
if (spa->spa_root_vdev == vd) {
usr/src/uts/common/fs/zfs/vdev.c
513
vd->vdev_spa = spa;
usr/src/uts/common/fs/zfs/vdev.c
514
vd->vdev_id = id;
usr/src/uts/common/fs/zfs/vdev.c
515
vd->vdev_guid = guid;
usr/src/uts/common/fs/zfs/vdev.c
516
vd->vdev_guid_sum = guid;
usr/src/uts/common/fs/zfs/vdev.c
517
vd->vdev_ops = ops;
usr/src/uts/common/fs/zfs/vdev.c
518
vd->vdev_state = VDEV_STATE_CLOSED;
usr/src/uts/common/fs/zfs/vdev.c
519
vd->vdev_ishole = (ops == &vdev_hole_ops);
usr/src/uts/common/fs/zfs/vdev.c
522
rw_init(&vd->vdev_indirect_rwlock, NULL, RW_DEFAULT, NULL);
usr/src/uts/common/fs/zfs/vdev.c
523
mutex_init(&vd->vdev_obsolete_lock, NULL, MUTEX_DEFAULT, NULL);
usr/src/uts/common/fs/zfs/vdev.c
524
vd->vdev_obsolete_segments = range_tree_create(NULL, RANGE_SEG64, NULL,
usr/src/uts/common/fs/zfs/vdev.c
527
list_link_init(&vd->vdev_initialize_node);
usr/src/uts/common/fs/zfs/vdev.c
528
list_link_init(&vd->vdev_leaf_node);
usr/src/uts/common/fs/zfs/vdev.c
529
list_link_init(&vd->vdev_trim_node);
usr/src/uts/common/fs/zfs/vdev.c
530
mutex_init(&vd->vdev_dtl_lock, NULL, MUTEX_DEFAULT, NULL);
usr/src/uts/common/fs/zfs/vdev.c
531
mutex_init(&vd->vdev_stat_lock, NULL, MUTEX_DEFAULT, NULL);
usr/src/uts/common/fs/zfs/vdev.c
532
mutex_init(&vd->vdev_probe_lock, NULL, MUTEX_DEFAULT, NULL);
usr/src/uts/common/fs/zfs/vdev.c
533
mutex_init(&vd->vdev_scan_io_queue_lock, NULL, MUTEX_DEFAULT, NULL);
usr/src/uts/common/fs/zfs/vdev.c
534
mutex_init(&vd->vdev_initialize_lock, NULL, MUTEX_DEFAULT, NULL);
usr/src/uts/common/fs/zfs/vdev.c
535
mutex_init(&vd->vdev_initialize_io_lock, NULL, MUTEX_DEFAULT, NULL);
usr/src/uts/common/fs/zfs/vdev.c
536
cv_init(&vd->vdev_initialize_cv, NULL, CV_DEFAULT, NULL);
usr/src/uts/common/fs/zfs/vdev.c
537
cv_init(&vd->vdev_initialize_io_cv, NULL, CV_DEFAULT, NULL);
usr/src/uts/common/fs/zfs/vdev.c
538
mutex_init(&vd->vdev_trim_lock, NULL, MUTEX_DEFAULT, NULL);
usr/src/uts/common/fs/zfs/vdev.c
539
mutex_init(&vd->vdev_autotrim_lock, NULL, MUTEX_DEFAULT, NULL);
usr/src/uts/common/fs/zfs/vdev.c
540
mutex_init(&vd->vdev_trim_io_lock, NULL, MUTEX_DEFAULT, NULL);
usr/src/uts/common/fs/zfs/vdev.c
541
cv_init(&vd->vdev_trim_cv, NULL, CV_DEFAULT, NULL);
usr/src/uts/common/fs/zfs/vdev.c
542
cv_init(&vd->vdev_autotrim_cv, NULL, CV_DEFAULT, NULL);
usr/src/uts/common/fs/zfs/vdev.c
543
cv_init(&vd->vdev_trim_io_cv, NULL, CV_DEFAULT, NULL);
usr/src/uts/common/fs/zfs/vdev.c
546
vd->vdev_dtl[t] = range_tree_create(NULL, RANGE_SEG64, NULL, 0,
usr/src/uts/common/fs/zfs/vdev.c
549
txg_list_create(&vd->vdev_ms_list, spa,
usr/src/uts/common/fs/zfs/vdev.c
551
txg_list_create(&vd->vdev_dtl_list, spa,
usr/src/uts/common/fs/zfs/vdev.c
553
vd->vdev_stat.vs_timestamp = gethrtime();
usr/src/uts/common/fs/zfs/vdev.c
554
vdev_queue_init(vd);
usr/src/uts/common/fs/zfs/vdev.c
555
vdev_cache_init(vd);
usr/src/uts/common/fs/zfs/vdev.c
557
return (vd);
usr/src/uts/common/fs/zfs/vdev.c
572
vdev_t *vd;
usr/src/uts/common/fs/zfs/vdev.c
682
vd = vdev_alloc_common(spa, id, guid, ops);
usr/src/uts/common/fs/zfs/vdev.c
683
vic = &vd->vdev_indirect_config;
usr/src/uts/common/fs/zfs/vdev.c
685
vd->vdev_islog = islog;
usr/src/uts/common/fs/zfs/vdev.c
686
vd->vdev_nparity = nparity;
usr/src/uts/common/fs/zfs/vdev.c
688
vd->vdev_alloc_bias = alloc_bias;
usr/src/uts/common/fs/zfs/vdev.c
690
if (nvlist_lookup_string(nv, ZPOOL_CONFIG_PATH, &vd->vdev_path) == 0)
usr/src/uts/common/fs/zfs/vdev.c
691
vd->vdev_path = spa_strdup(vd->vdev_path);
usr/src/uts/common/fs/zfs/vdev.c
692
if (nvlist_lookup_string(nv, ZPOOL_CONFIG_DEVID, &vd->vdev_devid) == 0)
usr/src/uts/common/fs/zfs/vdev.c
693
vd->vdev_devid = spa_strdup(vd->vdev_devid);
usr/src/uts/common/fs/zfs/vdev.c
695
&vd->vdev_physpath) == 0)
usr/src/uts/common/fs/zfs/vdev.c
696
vd->vdev_physpath = spa_strdup(vd->vdev_physpath);
usr/src/uts/common/fs/zfs/vdev.c
697
if (nvlist_lookup_string(nv, ZPOOL_CONFIG_FRU, &vd->vdev_fru) == 0)
usr/src/uts/common/fs/zfs/vdev.c
698
vd->vdev_fru = spa_strdup(vd->vdev_fru);
usr/src/uts/common/fs/zfs/vdev.c
705
&vd->vdev_wholedisk) != 0)
usr/src/uts/common/fs/zfs/vdev.c
706
vd->vdev_wholedisk = -1ULL;
usr/src/uts/common/fs/zfs/vdev.c
723
&vd->vdev_not_present);
usr/src/uts/common/fs/zfs/vdev.c
728
(void) nvlist_lookup_uint64(nv, ZPOOL_CONFIG_ASHIFT, &vd->vdev_ashift);
usr/src/uts/common/fs/zfs/vdev.c
734
&vd->vdev_crtxg);
usr/src/uts/common/fs/zfs/vdev.c
742
&vd->vdev_ms_array);
usr/src/uts/common/fs/zfs/vdev.c
744
&vd->vdev_ms_shift);
usr/src/uts/common/fs/zfs/vdev.c
746
&vd->vdev_asize);
usr/src/uts/common/fs/zfs/vdev.c
748
&vd->vdev_removing);
usr/src/uts/common/fs/zfs/vdev.c
750
&vd->vdev_top_zap);
usr/src/uts/common/fs/zfs/vdev.c
752
ASSERT0(vd->vdev_top_zap);
usr/src/uts/common/fs/zfs/vdev.c
763
if (vd->vdev_ops->vdev_op_leaf &&
usr/src/uts/common/fs/zfs/vdev.c
766
ZPOOL_CONFIG_VDEV_LEAF_ZAP, &vd->vdev_leaf_zap);
usr/src/uts/common/fs/zfs/vdev.c
768
ASSERT0(vd->vdev_leaf_zap);
usr/src/uts/common/fs/zfs/vdev.c
775
if (vd->vdev_ops->vdev_op_leaf &&
usr/src/uts/common/fs/zfs/vdev.c
780
&vd->vdev_dtl_object);
usr/src/uts/common/fs/zfs/vdev.c
782
&vd->vdev_unspare);
usr/src/uts/common/fs/zfs/vdev.c
790
spa_spare_add(vd);
usr/src/uts/common/fs/zfs/vdev.c
794
&vd->vdev_offline);
usr/src/uts/common/fs/zfs/vdev.c
797
&vd->vdev_resilver_txg);
usr/src/uts/common/fs/zfs/vdev.c
800
vdev_defer_resilver(vd);
usr/src/uts/common/fs/zfs/vdev.c
810
&vd->vdev_faulted);
usr/src/uts/common/fs/zfs/vdev.c
812
&vd->vdev_degraded);
usr/src/uts/common/fs/zfs/vdev.c
814
&vd->vdev_removed);
usr/src/uts/common/fs/zfs/vdev.c
816
if (vd->vdev_faulted || vd->vdev_degraded) {
usr/src/uts/common/fs/zfs/vdev.c
819
vd->vdev_label_aux =
usr/src/uts/common/fs/zfs/vdev.c
824
vd->vdev_label_aux = VDEV_AUX_EXTERNAL;
usr/src/uts/common/fs/zfs/vdev.c
832
vdev_add_child(parent, vd);
usr/src/uts/common/fs/zfs/vdev.c
834
*vdp = vd;
usr/src/uts/common/fs/zfs/vdev.c
840
vdev_free(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev.c
842
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev.c
844
ASSERT3P(vd->vdev_initialize_thread, ==, NULL);
usr/src/uts/common/fs/zfs/vdev.c
845
ASSERT3P(vd->vdev_trim_thread, ==, NULL);
usr/src/uts/common/fs/zfs/vdev.c
846
ASSERT3P(vd->vdev_autotrim_thread, ==, NULL);
usr/src/uts/common/fs/zfs/vdev.c
853
if (vd->vdev_scan_io_queue != NULL) {
usr/src/uts/common/fs/zfs/vdev.c
854
mutex_enter(&vd->vdev_scan_io_queue_lock);
usr/src/uts/common/fs/zfs/vdev.c
855
dsl_scan_io_queue_destroy(vd->vdev_scan_io_queue);
usr/src/uts/common/fs/zfs/vdev.c
856
vd->vdev_scan_io_queue = NULL;
usr/src/uts/common/fs/zfs/vdev.c
857
mutex_exit(&vd->vdev_scan_io_queue_lock);
usr/src/uts/common/fs/zfs/vdev.c
864
vdev_close(vd);
usr/src/uts/common/fs/zfs/vdev.c
866
ASSERT(!list_link_active(&vd->vdev_config_dirty_node));
usr/src/uts/common/fs/zfs/vdev.c
867
ASSERT(!list_link_active(&vd->vdev_state_dirty_node));
usr/src/uts/common/fs/zfs/vdev.c
872
for (int c = 0; c < vd->vdev_children; c++)
usr/src/uts/common/fs/zfs/vdev.c
873
vdev_free(vd->vdev_child[c]);
usr/src/uts/common/fs/zfs/vdev.c
875
ASSERT(vd->vdev_child == NULL);
usr/src/uts/common/fs/zfs/vdev.c
876
ASSERT(vd->vdev_guid_sum == vd->vdev_guid);
usr/src/uts/common/fs/zfs/vdev.c
881
if (vd->vdev_mg != NULL) {
usr/src/uts/common/fs/zfs/vdev.c
882
vdev_metaslab_fini(vd);
usr/src/uts/common/fs/zfs/vdev.c
883
metaslab_group_destroy(vd->vdev_mg);
usr/src/uts/common/fs/zfs/vdev.c
884
vd->vdev_mg = NULL;
usr/src/uts/common/fs/zfs/vdev.c
887
ASSERT0(vd->vdev_stat.vs_space);
usr/src/uts/common/fs/zfs/vdev.c
888
ASSERT0(vd->vdev_stat.vs_dspace);
usr/src/uts/common/fs/zfs/vdev.c
889
ASSERT0(vd->vdev_stat.vs_alloc);
usr/src/uts/common/fs/zfs/vdev.c
894
vdev_remove_child(vd->vdev_parent, vd);
usr/src/uts/common/fs/zfs/vdev.c
896
ASSERT(vd->vdev_parent == NULL);
usr/src/uts/common/fs/zfs/vdev.c
897
ASSERT(!list_link_active(&vd->vdev_leaf_node));
usr/src/uts/common/fs/zfs/vdev.c
902
vdev_queue_fini(vd);
usr/src/uts/common/fs/zfs/vdev.c
903
vdev_cache_fini(vd);
usr/src/uts/common/fs/zfs/vdev.c
905
if (vd->vdev_path)
usr/src/uts/common/fs/zfs/vdev.c
906
spa_strfree(vd->vdev_path);
usr/src/uts/common/fs/zfs/vdev.c
907
if (vd->vdev_devid)
usr/src/uts/common/fs/zfs/vdev.c
908
spa_strfree(vd->vdev_devid);
usr/src/uts/common/fs/zfs/vdev.c
909
if (vd->vdev_physpath)
usr/src/uts/common/fs/zfs/vdev.c
910
spa_strfree(vd->vdev_physpath);
usr/src/uts/common/fs/zfs/vdev.c
911
if (vd->vdev_fru)
usr/src/uts/common/fs/zfs/vdev.c
912
spa_strfree(vd->vdev_fru);
usr/src/uts/common/fs/zfs/vdev.c
914
if (vd->vdev_isspare)
usr/src/uts/common/fs/zfs/vdev.c
915
spa_spare_remove(vd);
usr/src/uts/common/fs/zfs/vdev.c
916
if (vd->vdev_isl2cache)
usr/src/uts/common/fs/zfs/vdev.c
917
spa_l2cache_remove(vd);
usr/src/uts/common/fs/zfs/vdev.c
919
txg_list_destroy(&vd->vdev_ms_list);
usr/src/uts/common/fs/zfs/vdev.c
920
txg_list_destroy(&vd->vdev_dtl_list);
usr/src/uts/common/fs/zfs/vdev.c
922
mutex_enter(&vd->vdev_dtl_lock);
usr/src/uts/common/fs/zfs/vdev.c
923
space_map_close(vd->vdev_dtl_sm);
usr/src/uts/common/fs/zfs/vdev.c
925
range_tree_vacate(vd->vdev_dtl[t], NULL, NULL);
usr/src/uts/common/fs/zfs/vdev.c
926
range_tree_destroy(vd->vdev_dtl[t]);
usr/src/uts/common/fs/zfs/vdev.c
928
mutex_exit(&vd->vdev_dtl_lock);
usr/src/uts/common/fs/zfs/vdev.c
930
EQUIV(vd->vdev_indirect_births != NULL,
usr/src/uts/common/fs/zfs/vdev.c
931
vd->vdev_indirect_mapping != NULL);
usr/src/uts/common/fs/zfs/vdev.c
932
if (vd->vdev_indirect_births != NULL) {
usr/src/uts/common/fs/zfs/vdev.c
933
vdev_indirect_mapping_close(vd->vdev_indirect_mapping);
usr/src/uts/common/fs/zfs/vdev.c
934
vdev_indirect_births_close(vd->vdev_indirect_births);
usr/src/uts/common/fs/zfs/vdev.c
937
if (vd->vdev_obsolete_sm != NULL) {
usr/src/uts/common/fs/zfs/vdev.c
938
ASSERT(vd->vdev_removing ||
usr/src/uts/common/fs/zfs/vdev.c
939
vd->vdev_ops == &vdev_indirect_ops);
usr/src/uts/common/fs/zfs/vdev.c
940
space_map_close(vd->vdev_obsolete_sm);
usr/src/uts/common/fs/zfs/vdev.c
941
vd->vdev_obsolete_sm = NULL;
usr/src/uts/common/fs/zfs/vdev.c
943
range_tree_destroy(vd->vdev_obsolete_segments);
usr/src/uts/common/fs/zfs/vdev.c
944
rw_destroy(&vd->vdev_indirect_rwlock);
usr/src/uts/common/fs/zfs/vdev.c
945
mutex_destroy(&vd->vdev_obsolete_lock);
usr/src/uts/common/fs/zfs/vdev.c
947
mutex_destroy(&vd->vdev_dtl_lock);
usr/src/uts/common/fs/zfs/vdev.c
948
mutex_destroy(&vd->vdev_stat_lock);
usr/src/uts/common/fs/zfs/vdev.c
949
mutex_destroy(&vd->vdev_probe_lock);
usr/src/uts/common/fs/zfs/vdev.c
950
mutex_destroy(&vd->vdev_scan_io_queue_lock);
usr/src/uts/common/fs/zfs/vdev.c
951
mutex_destroy(&vd->vdev_initialize_lock);
usr/src/uts/common/fs/zfs/vdev.c
952
mutex_destroy(&vd->vdev_initialize_io_lock);
usr/src/uts/common/fs/zfs/vdev.c
953
cv_destroy(&vd->vdev_initialize_io_cv);
usr/src/uts/common/fs/zfs/vdev.c
954
cv_destroy(&vd->vdev_initialize_cv);
usr/src/uts/common/fs/zfs/vdev.c
955
mutex_destroy(&vd->vdev_trim_lock);
usr/src/uts/common/fs/zfs/vdev.c
956
mutex_destroy(&vd->vdev_autotrim_lock);
usr/src/uts/common/fs/zfs/vdev.c
957
mutex_destroy(&vd->vdev_trim_io_lock);
usr/src/uts/common/fs/zfs/vdev.c
958
cv_destroy(&vd->vdev_trim_cv);
usr/src/uts/common/fs/zfs/vdev.c
959
cv_destroy(&vd->vdev_autotrim_cv);
usr/src/uts/common/fs/zfs/vdev.c
960
cv_destroy(&vd->vdev_trim_io_cv);
usr/src/uts/common/fs/zfs/vdev.c
962
if (vd == spa->spa_root_vdev)
usr/src/uts/common/fs/zfs/vdev.c
965
kmem_free(vd, sizeof (vdev_t));
usr/src/uts/common/fs/zfs/vdev.c
976
vdev_t *vd;
usr/src/uts/common/fs/zfs/vdev_cache.c
214
vdev_t *vd = fio->io_vd;
usr/src/uts/common/fs/zfs/vdev_cache.c
215
vdev_cache_t *vc = &vd->vdev_cache;
usr/src/uts/common/fs/zfs/vdev_cache.c
365
vdev_cache_purge(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev_cache.c
367
vdev_cache_t *vc = &vd->vdev_cache;
usr/src/uts/common/fs/zfs/vdev_cache.c
377
vdev_cache_init(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev_cache.c
379
vdev_cache_t *vc = &vd->vdev_cache;
usr/src/uts/common/fs/zfs/vdev_cache.c
393
vdev_cache_fini(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev_cache.c
395
vdev_cache_t *vc = &vd->vdev_cache;
usr/src/uts/common/fs/zfs/vdev_cache.c
397
vdev_cache_purge(vd);
usr/src/uts/common/fs/zfs/vdev_disk.c
101
dvd = vd->vdev_tsd = kmem_zalloc(sizeof (vdev_disk_t), KM_SLEEP);
usr/src/uts/common/fs/zfs/vdev_disk.c
1045
vdev_t *vd = zio->io_vd;
usr/src/uts/common/fs/zfs/vdev_disk.c
1053
if (zio->io_error == EIO && !vd->vdev_remove_wanted) {
usr/src/uts/common/fs/zfs/vdev_disk.c
1054
vdev_disk_t *dvd = vd->vdev_tsd;
usr/src/uts/common/fs/zfs/vdev_disk.c
1065
zfs_post_remove(zio->io_spa, vd);
usr/src/uts/common/fs/zfs/vdev_disk.c
1066
vd->vdev_remove_wanted = B_TRUE;
usr/src/uts/common/fs/zfs/vdev_disk.c
1068
} else if (!vd->vdev_delayed_close) {
usr/src/uts/common/fs/zfs/vdev_disk.c
1069
vd->vdev_delayed_close = B_TRUE;
usr/src/uts/common/fs/zfs/vdev_disk.c
110
vdev_disk_free(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev_disk.c
112
vdev_disk_t *dvd = vd->vdev_tsd;
usr/src/uts/common/fs/zfs/vdev_disk.c
129
vd->vdev_tsd = NULL;
usr/src/uts/common/fs/zfs/vdev_disk.c
136
vdev_t *vd = (vdev_t *)arg;
usr/src/uts/common/fs/zfs/vdev_disk.c
137
vdev_disk_t *dvd = vd->vdev_tsd;
usr/src/uts/common/fs/zfs/vdev_disk.c
156
zfs_post_remove(vd->vdev_spa, vd);
usr/src/uts/common/fs/zfs/vdev_disk.c
157
vd->vdev_remove_wanted = B_TRUE;
usr/src/uts/common/fs/zfs/vdev_disk.c
158
spa_async_request(vd->vdev_spa, SPA_ASYNC_REMOVE);
usr/src/uts/common/fs/zfs/vdev_disk.c
167
vdev_t *vd = (vdev_t *)arg;
usr/src/uts/common/fs/zfs/vdev_disk.c
180
vd->vdev_probe_wanted = B_TRUE;
usr/src/uts/common/fs/zfs/vdev_disk.c
181
spa_async_request(vd->vdev_spa, SPA_ASYNC_PROBE);
usr/src/uts/common/fs/zfs/vdev_disk.c
195
vdev_t *vd = (vdev_t *)arg;
usr/src/uts/common/fs/zfs/vdev_disk.c
207
(void) vdev_degrade(vd->vdev_spa, vd->vdev_guid, 0);
usr/src/uts/common/fs/zfs/vdev_disk.c
217
vdev_disk_hold(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev_disk.c
222
ASSERT(spa_config_held(vd->vdev_spa, SCL_STATE, RW_WRITER));
usr/src/uts/common/fs/zfs/vdev_disk.c
227
if (vd->vdev_path == NULL || vd->vdev_path[0] != '/')
usr/src/uts/common/fs/zfs/vdev_disk.c
234
if (vd->vdev_tsd != NULL)
usr/src/uts/common/fs/zfs/vdev_disk.c
237
if (vd->vdev_wholedisk == -1ULL) {
usr/src/uts/common/fs/zfs/vdev_disk.c
238
size_t len = strlen(vd->vdev_path) + 3;
usr/src/uts/common/fs/zfs/vdev_disk.c
241
(void) snprintf(buf, len, "%ss0", vd->vdev_path);
usr/src/uts/common/fs/zfs/vdev_disk.c
243
(void) ldi_vp_from_name(buf, &vd->vdev_name_vp);
usr/src/uts/common/fs/zfs/vdev_disk.c
247
if (vd->vdev_name_vp == NULL)
usr/src/uts/common/fs/zfs/vdev_disk.c
248
(void) ldi_vp_from_name(vd->vdev_path, &vd->vdev_name_vp);
usr/src/uts/common/fs/zfs/vdev_disk.c
250
if (vd->vdev_devid != NULL &&
usr/src/uts/common/fs/zfs/vdev_disk.c
251
ddi_devid_str_decode(vd->vdev_devid, &devid, &minor) == 0) {
usr/src/uts/common/fs/zfs/vdev_disk.c
252
(void) ldi_vp_from_devid(devid, minor, &vd->vdev_devid_vp);
usr/src/uts/common/fs/zfs/vdev_disk.c
259
vdev_disk_rele(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev_disk.c
261
ASSERT(spa_config_held(vd->vdev_spa, SCL_STATE, RW_WRITER));
usr/src/uts/common/fs/zfs/vdev_disk.c
263
if (vd->vdev_name_vp) {
usr/src/uts/common/fs/zfs/vdev_disk.c
264
VN_RELE_ASYNC(vd->vdev_name_vp,
usr/src/uts/common/fs/zfs/vdev_disk.c
265
dsl_pool_vnrele_taskq(vd->vdev_spa->spa_dsl_pool));
usr/src/uts/common/fs/zfs/vdev_disk.c
266
vd->vdev_name_vp = NULL;
usr/src/uts/common/fs/zfs/vdev_disk.c
268
if (vd->vdev_devid_vp) {
usr/src/uts/common/fs/zfs/vdev_disk.c
269
VN_RELE_ASYNC(vd->vdev_devid_vp,
usr/src/uts/common/fs/zfs/vdev_disk.c
270
dsl_pool_vnrele_taskq(vd->vdev_spa->spa_dsl_pool));
usr/src/uts/common/fs/zfs/vdev_disk.c
271
vd->vdev_devid_vp = NULL;
usr/src/uts/common/fs/zfs/vdev_disk.c
286
vdev_disk_open(vdev_t *vd, uint64_t *psize, uint64_t *max_psize,
usr/src/uts/common/fs/zfs/vdev_disk.c
289
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev_disk.c
290
vdev_disk_t *dvd = vd->vdev_tsd;
usr/src/uts/common/fs/zfs/vdev_disk.c
309
if (vd->vdev_path == NULL || vd->vdev_path[0] != '/') {
usr/src/uts/common/fs/zfs/vdev_disk.c
310
vd->vdev_stat.vs_aux = VDEV_AUX_BAD_LABEL;
usr/src/uts/common/fs/zfs/vdev_disk.c
319
ASSERT(vd->vdev_reopening);
usr/src/uts/common/fs/zfs/vdev_disk.c
326
vdev_disk_alloc(vd);
usr/src/uts/common/fs/zfs/vdev_disk.c
327
dvd = vd->vdev_tsd;
usr/src/uts/common/fs/zfs/vdev_disk.c
332
if (vd->vdev_devid != NULL &&
usr/src/uts/common/fs/zfs/vdev_disk.c
334
vdev_dbgmsg(vd, "vdev_disk_open, devid %s bypassed",
usr/src/uts/common/fs/zfs/vdev_disk.c
335
vd->vdev_devid);
usr/src/uts/common/fs/zfs/vdev_disk.c
336
spa_strfree(vd->vdev_devid);
usr/src/uts/common/fs/zfs/vdev_disk.c
337
vd->vdev_devid = NULL;
usr/src/uts/common/fs/zfs/vdev_disk.c
356
if (vd->vdev_devid != NULL) {
usr/src/uts/common/fs/zfs/vdev_disk.c
357
if (ddi_devid_str_decode(vd->vdev_devid, &dvd->vd_devid,
usr/src/uts/common/fs/zfs/vdev_disk.c
359
vdev_dbgmsg(vd,
usr/src/uts/common/fs/zfs/vdev_disk.c
361
vd->vdev_devid);
usr/src/uts/common/fs/zfs/vdev_disk.c
362
spa_strfree(vd->vdev_devid);
usr/src/uts/common/fs/zfs/vdev_disk.c
363
vd->vdev_devid = NULL;
usr/src/uts/common/fs/zfs/vdev_disk.c
380
if (vd->vdev_path != NULL) {
usr/src/uts/common/fs/zfs/vdev_disk.c
381
if (vd->vdev_wholedisk == -1ULL) {
usr/src/uts/common/fs/zfs/vdev_disk.c
382
size_t len = strlen(vd->vdev_path) + 3;
usr/src/uts/common/fs/zfs/vdev_disk.c
385
(void) snprintf(buf, len, "%ss0", vd->vdev_path);
usr/src/uts/common/fs/zfs/vdev_disk.c
390
spa_strfree(vd->vdev_path);
usr/src/uts/common/fs/zfs/vdev_disk.c
391
vd->vdev_path = buf;
usr/src/uts/common/fs/zfs/vdev_disk.c
392
vd->vdev_wholedisk = 1ULL;
usr/src/uts/common/fs/zfs/vdev_disk.c
403
error = ldi_open_by_name(vd->vdev_path, spa_mode(spa),
usr/src/uts/common/fs/zfs/vdev_disk.c
410
if (error == 0 && vd->vdev_devid != NULL) {
usr/src/uts/common/fs/zfs/vdev_disk.c
429
vdev_dbgmsg(vd, "vdev_disk_open: devid "
usr/src/uts/common/fs/zfs/vdev_disk.c
430
"mismatch: %s != %s", vd->vdev_devid,
usr/src/uts/common/fs/zfs/vdev_disk.c
433
"mismatch: %s != %s", vd->vdev_path,
usr/src/uts/common/fs/zfs/vdev_disk.c
434
vd->vdev_devid, devid_str);
usr/src/uts/common/fs/zfs/vdev_disk.c
452
if (error == 0 && vd->vdev_wholedisk == -1ULL)
usr/src/uts/common/fs/zfs/vdev_disk.c
453
vd->vdev_wholedisk = 0;
usr/src/uts/common/fs/zfs/vdev_disk.c
460
if (error != 0 && vd->vdev_devid != NULL) {
usr/src/uts/common/fs/zfs/vdev_disk.c
464
vdev_dbgmsg(vd, "Failed to open by devid (%s)",
usr/src/uts/common/fs/zfs/vdev_disk.c
465
vd->vdev_devid);
usr/src/uts/common/fs/zfs/vdev_disk.c
478
if (vd->vdev_physpath != NULL &&
usr/src/uts/common/fs/zfs/vdev_disk.c
479
(dev = ddi_pathname_to_dev_t(vd->vdev_physpath)) != NODEV) {
usr/src/uts/common/fs/zfs/vdev_disk.c
489
if (error != 0 && vd->vdev_path != NULL) {
usr/src/uts/common/fs/zfs/vdev_disk.c
490
error = ldi_open_by_name(vd->vdev_path, spa_mode(spa),
usr/src/uts/common/fs/zfs/vdev_disk.c
501
spa_guid(spa), vd->vdev_guid);
usr/src/uts/common/fs/zfs/vdev_disk.c
504
vdev_dbgmsg(vd, "Trying alternate preroot path (%s)",
usr/src/uts/common/fs/zfs/vdev_disk.c
511
vdev_dbgmsg(vd, "Failed to open by preroot "
usr/src/uts/common/fs/zfs/vdev_disk.c
519
vd->vdev_stat.vs_aux = VDEV_AUX_OPEN_FAILED;
usr/src/uts/common/fs/zfs/vdev_disk.c
520
vdev_dbgmsg(vd, "vdev_disk_open: failed to open [error=%d]",
usr/src/uts/common/fs/zfs/vdev_disk.c
547
vd->vdev_devid != NULL) {
usr/src/uts/common/fs/zfs/vdev_disk.c
580
vdev_dbgmsg(vd, "vdev_disk_open: update devid from "
usr/src/uts/common/fs/zfs/vdev_disk.c
582
vd->vdev_devid != NULL ? vd->vdev_devid : "<none>",
usr/src/uts/common/fs/zfs/vdev_disk.c
586
vd->vdev_path != NULL ? vd->vdev_path : "?",
usr/src/uts/common/fs/zfs/vdev_disk.c
587
vd->vdev_devid != NULL ? vd->vdev_devid : "<none>",
usr/src/uts/common/fs/zfs/vdev_disk.c
601
if (vd->vdev_devid != NULL) {
usr/src/uts/common/fs/zfs/vdev_disk.c
602
spa_strfree(vd->vdev_devid);
usr/src/uts/common/fs/zfs/vdev_disk.c
603
vd->vdev_devid = NULL;
usr/src/uts/common/fs/zfs/vdev_disk.c
611
vd->vdev_devid = vd_devid;
usr/src/uts/common/fs/zfs/vdev_disk.c
637
(vd->vdev_physpath == NULL ||
usr/src/uts/common/fs/zfs/vdev_disk.c
638
strcmp(vd->vdev_physpath, physpath) != 0)) {
usr/src/uts/common/fs/zfs/vdev_disk.c
639
if (vd->vdev_physpath)
usr/src/uts/common/fs/zfs/vdev_disk.c
640
spa_strfree(vd->vdev_physpath);
usr/src/uts/common/fs/zfs/vdev_disk.c
643
vd->vdev_physpath = spa_strdup(physpath);
usr/src/uts/common/fs/zfs/vdev_disk.c
658
&vdev_disk_off_callb, (void *) vd, &lcb->lcb_id);
usr/src/uts/common/fs/zfs/vdev_disk.c
669
&vdev_disk_dgrd_callb, (void *) vd, &lcb->lcb_id);
usr/src/uts/common/fs/zfs/vdev_disk.c
677
vd->vdev_stat.vs_aux = VDEV_AUX_OPEN_FAILED;
usr/src/uts/common/fs/zfs/vdev_disk.c
678
vdev_dbgmsg(vd, "vdev_disk_open: failed to get size");
usr/src/uts/common/fs/zfs/vdev_disk.c
697
vd->vdev_path);
usr/src/uts/common/fs/zfs/vdev_disk.c
704
vd->vdev_path, error);
usr/src/uts/common/fs/zfs/vdev_disk.c
710
if (vd->vdev_wholedisk == 1) {
usr/src/uts/common/fs/zfs/vdev_disk.c
735
vd->vdev_nowritecache = B_FALSE;
usr/src/uts/common/fs/zfs/vdev_disk.c
739
vd->vdev_has_trim = B_TRUE;
usr/src/uts/common/fs/zfs/vdev_disk.c
741
vd->vdev_has_trim = B_FALSE;
usr/src/uts/common/fs/zfs/vdev_disk.c
745
vd->vdev_has_trim = B_FALSE;
usr/src/uts/common/fs/zfs/vdev_disk.c
748
vd->vdev_has_securetrim = B_FALSE;
usr/src/uts/common/fs/zfs/vdev_disk.c
751
vd->vdev_nonrot = B_FALSE;
usr/src/uts/common/fs/zfs/vdev_disk.c
757
vd->vdev_nonrot = B_TRUE;
usr/src/uts/common/fs/zfs/vdev_disk.c
764
vdev_disk_close(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev_disk.c
766
vdev_disk_t *dvd = vd->vdev_tsd;
usr/src/uts/common/fs/zfs/vdev_disk.c
768
if (vd->vdev_reopening || dvd == NULL)
usr/src/uts/common/fs/zfs/vdev_disk.c
782
(void) ldi_close(dvd->vd_lh, spa_mode(vd->vdev_spa), kcred);
usr/src/uts/common/fs/zfs/vdev_disk.c
786
vd->vdev_delayed_close = B_FALSE;
usr/src/uts/common/fs/zfs/vdev_disk.c
787
vdev_disk_free(vd);
usr/src/uts/common/fs/zfs/vdev_disk.c
819
vdev_disk_dumpio(vdev_t *vd, caddr_t data, size_t size,
usr/src/uts/common/fs/zfs/vdev_disk.c
823
vdev_disk_t *dvd = vd->vdev_tsd;
usr/src/uts/common/fs/zfs/vdev_disk.c
834
ASSERT(vd->vdev_ops == &vdev_disk_ops);
usr/src/uts/common/fs/zfs/vdev_disk.c
903
vdev_t *vd = zio->io_vd;
usr/src/uts/common/fs/zfs/vdev_disk.c
904
vdev_disk_t *dvd = vd->vdev_tsd;
usr/src/uts/common/fs/zfs/vdev_disk.c
924
if (!vdev_readable(vd)) {
usr/src/uts/common/fs/zfs/vdev_disk.c
937
if (vd->vdev_nowritecache) {
usr/src/uts/common/fs/zfs/vdev_disk.c
97
vdev_disk_alloc(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev_disk.c
973
if (zfs_no_trim == 1 || !vd->vdev_has_trim) {
usr/src/uts/common/fs/zfs/vdev_disk.c
997
vd->vdev_has_trim = B_FALSE;
usr/src/uts/common/fs/zfs/vdev_file.c
101
vf = vd->vdev_tsd = kmem_zalloc(sizeof (vdev_file_t), KM_SLEEP);
usr/src/uts/common/fs/zfs/vdev_file.c
109
ASSERT(vd->vdev_path != NULL && vd->vdev_path[0] == '/');
usr/src/uts/common/fs/zfs/vdev_file.c
110
error = vn_openat(vd->vdev_path + 1, UIO_SYSSPACE,
usr/src/uts/common/fs/zfs/vdev_file.c
111
spa_mode(vd->vdev_spa) | FOFFMAX, 0, &vp, 0, 0, rootdir, -1);
usr/src/uts/common/fs/zfs/vdev_file.c
114
vd->vdev_stat.vs_aux = VDEV_AUX_OPEN_FAILED;
usr/src/uts/common/fs/zfs/vdev_file.c
125
vd->vdev_stat.vs_aux = VDEV_AUX_OPEN_FAILED;
usr/src/uts/common/fs/zfs/vdev_file.c
137
vd->vdev_stat.vs_aux = VDEV_AUX_OPEN_FAILED;
usr/src/uts/common/fs/zfs/vdev_file.c
148
vdev_file_close(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev_file.c
150
vdev_file_t *vf = vd->vdev_tsd;
usr/src/uts/common/fs/zfs/vdev_file.c
152
if (vd->vdev_reopening || vf == NULL)
usr/src/uts/common/fs/zfs/vdev_file.c
157
(void) VOP_CLOSE(vf->vf_vnode, spa_mode(vd->vdev_spa), 1, 0,
usr/src/uts/common/fs/zfs/vdev_file.c
162
vd->vdev_delayed_close = B_FALSE;
usr/src/uts/common/fs/zfs/vdev_file.c
164
vd->vdev_tsd = NULL;
usr/src/uts/common/fs/zfs/vdev_file.c
218
vdev_t *vd = zio->io_vd;
usr/src/uts/common/fs/zfs/vdev_file.c
219
vdev_file_t *vf = vd->vdev_tsd;
usr/src/uts/common/fs/zfs/vdev_file.c
225
if (!vdev_readable(vd)) {
usr/src/uts/common/fs/zfs/vdev_file.c
45
vdev_file_hold(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev_file.c
47
ASSERT(vd->vdev_path != NULL);
usr/src/uts/common/fs/zfs/vdev_file.c
51
vdev_file_rele(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev_file.c
53
ASSERT(vd->vdev_path != NULL);
usr/src/uts/common/fs/zfs/vdev_file.c
57
vdev_file_open(vdev_t *vd, uint64_t *psize, uint64_t *max_psize,
usr/src/uts/common/fs/zfs/vdev_file.c
68
vd->vdev_nonrot = B_TRUE;
usr/src/uts/common/fs/zfs/vdev_file.c
75
vd->vdev_has_trim = B_TRUE;
usr/src/uts/common/fs/zfs/vdev_file.c
81
vd->vdev_has_securetrim = B_FALSE;
usr/src/uts/common/fs/zfs/vdev_file.c
86
if (vd->vdev_path == NULL || vd->vdev_path[0] != '/') {
usr/src/uts/common/fs/zfs/vdev_file.c
87
vd->vdev_stat.vs_aux = VDEV_AUX_BAD_LABEL;
usr/src/uts/common/fs/zfs/vdev_file.c
95
if (vd->vdev_tsd != NULL) {
usr/src/uts/common/fs/zfs/vdev_file.c
96
ASSERT(vd->vdev_reopening);
usr/src/uts/common/fs/zfs/vdev_file.c
97
vf = vd->vdev_tsd;
usr/src/uts/common/fs/zfs/vdev_indirect.c
1037
vdev_indirect_remap(vdev_t *vd, uint64_t offset, uint64_t asize,
usr/src/uts/common/fs/zfs/vdev_indirect.c
1041
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev_indirect.c
1046
for (remap_segment_t *rs = rs_alloc(vd, offset, asize, 0);
usr/src/uts/common/fs/zfs/vdev_indirect.c
1176
vdev_indirect_gather_splits(uint64_t split_offset, vdev_t *vd, uint64_t offset,
usr/src/uts/common/fs/zfs/vdev_indirect.c
1182
ASSERT3P(vd, !=, NULL);
usr/src/uts/common/fs/zfs/vdev_indirect.c
1184
if (vd->vdev_ops == &vdev_indirect_ops)
usr/src/uts/common/fs/zfs/vdev_indirect.c
1188
if (vd->vdev_ops == &vdev_mirror_ops)
usr/src/uts/common/fs/zfs/vdev_indirect.c
1189
n = vd->vdev_children;
usr/src/uts/common/fs/zfs/vdev_indirect.c
1198
is->is_vdev = vd;
usr/src/uts/common/fs/zfs/vdev_indirect.c
1208
if (vd->vdev_ops == &vdev_mirror_ops) {
usr/src/uts/common/fs/zfs/vdev_indirect.c
1210
is->is_child[i].ic_vdev = vd->vdev_child[i];
usr/src/uts/common/fs/zfs/vdev_indirect.c
1214
is->is_child[0].ic_vdev = vd;
usr/src/uts/common/fs/zfs/vdev_indirect.c
1372
vdev_t *vd = ic->ic_vdev;
usr/src/uts/common/fs/zfs/vdev_indirect.c
1377
mutex_enter(&vd->vdev_stat_lock);
usr/src/uts/common/fs/zfs/vdev_indirect.c
1378
vd->vdev_stat.vs_checksum_errors++;
usr/src/uts/common/fs/zfs/vdev_indirect.c
1379
mutex_exit(&vd->vdev_stat_lock);
usr/src/uts/common/fs/zfs/vdev_indirect.c
1384
(void) zfs_ereport_post_checksum(zio->io_spa, vd, &zio->io_bookmark,
usr/src/uts/common/fs/zfs/vdev_indirect.c
1453
vdev_t *vd = ic->ic_vdev;
usr/src/uts/common/fs/zfs/vdev_indirect.c
1455
mutex_enter(&vd->vdev_stat_lock);
usr/src/uts/common/fs/zfs/vdev_indirect.c
1456
vd->vdev_stat.vs_checksum_errors++;
usr/src/uts/common/fs/zfs/vdev_indirect.c
1457
mutex_exit(&vd->vdev_stat_lock);
usr/src/uts/common/fs/zfs/vdev_indirect.c
1459
(void) zfs_ereport_post_checksum(zio->io_spa, vd,
usr/src/uts/common/fs/zfs/vdev_indirect.c
324
vdev_indirect_mark_obsolete(vdev_t *vd, uint64_t offset, uint64_t size)
usr/src/uts/common/fs/zfs/vdev_indirect.c
326
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev_indirect.c
328
ASSERT3U(vd->vdev_indirect_config.vic_mapping_object, !=, 0);
usr/src/uts/common/fs/zfs/vdev_indirect.c
329
ASSERT(vd->vdev_removing || vd->vdev_ops == &vdev_indirect_ops);
usr/src/uts/common/fs/zfs/vdev_indirect.c
332
vd->vdev_indirect_mapping, offset) != NULL);
usr/src/uts/common/fs/zfs/vdev_indirect.c
335
mutex_enter(&vd->vdev_obsolete_lock);
usr/src/uts/common/fs/zfs/vdev_indirect.c
336
range_tree_add(vd->vdev_obsolete_segments, offset, size);
usr/src/uts/common/fs/zfs/vdev_indirect.c
337
mutex_exit(&vd->vdev_obsolete_lock);
usr/src/uts/common/fs/zfs/vdev_indirect.c
338
vdev_dirty(vd, 0, NULL, spa_syncing_txg(spa));
usr/src/uts/common/fs/zfs/vdev_indirect.c
351
vdev_t *vd = vdev_lookup_top(spa, vdev_id);
usr/src/uts/common/fs/zfs/vdev_indirect.c
355
ASSERT3P(vd->vdev_ops, ==, &vdev_indirect_ops);
usr/src/uts/common/fs/zfs/vdev_indirect.c
356
vdev_indirect_mark_obsolete(vd, offset, size);
usr/src/uts/common/fs/zfs/vdev_indirect.c
392
vdev_indirect_should_condense(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev_indirect.c
394
vdev_indirect_mapping_t *vim = vd->vdev_indirect_mapping;
usr/src/uts/common/fs/zfs/vdev_indirect.c
395
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev_indirect.c
416
if (vd->vdev_ops != &vdev_indirect_ops)
usr/src/uts/common/fs/zfs/vdev_indirect.c
423
if (vd->vdev_obsolete_sm == NULL) {
usr/src/uts/common/fs/zfs/vdev_indirect.c
424
ASSERT0(vdev_obsolete_sm_object(vd));
usr/src/uts/common/fs/zfs/vdev_indirect.c
428
ASSERT(vd->vdev_obsolete_sm != NULL);
usr/src/uts/common/fs/zfs/vdev_indirect.c
430
ASSERT3U(vdev_obsolete_sm_object(vd), ==,
usr/src/uts/common/fs/zfs/vdev_indirect.c
431
space_map_object(vd->vdev_obsolete_sm));
usr/src/uts/common/fs/zfs/vdev_indirect.c
434
uint64_t bytes_obsolete = space_map_allocated(vd->vdev_obsolete_sm);
usr/src/uts/common/fs/zfs/vdev_indirect.c
436
uint64_t obsolete_sm_size = space_map_length(vd->vdev_obsolete_sm);
usr/src/uts/common/fs/zfs/vdev_indirect.c
451
(u_longlong_t)vd->vdev_id,
usr/src/uts/common/fs/zfs/vdev_indirect.c
464
(u_longlong_t)vd->vdev_id,
usr/src/uts/common/fs/zfs/vdev_indirect.c
485
vdev_t *vd = vdev_lookup_top(spa, scip->scip_vdev);
usr/src/uts/common/fs/zfs/vdev_indirect.c
486
vdev_indirect_config_t *vic = &vd->vdev_indirect_config;
usr/src/uts/common/fs/zfs/vdev_indirect.c
488
vdev_indirect_mapping_t *old_mapping = vd->vdev_indirect_mapping;
usr/src/uts/common/fs/zfs/vdev_indirect.c
494
ASSERT3P(vd->vdev_ops, ==, &vdev_indirect_ops);
usr/src/uts/common/fs/zfs/vdev_indirect.c
500
ASSERT3U(vd->vdev_id, ==, scip->scip_vdev);
usr/src/uts/common/fs/zfs/vdev_indirect.c
507
rw_enter(&vd->vdev_indirect_rwlock, RW_WRITER);
usr/src/uts/common/fs/zfs/vdev_indirect.c
508
vdev_indirect_mapping_close(vd->vdev_indirect_mapping);
usr/src/uts/common/fs/zfs/vdev_indirect.c
509
vd->vdev_indirect_mapping = sci->sci_new_mapping;
usr/src/uts/common/fs/zfs/vdev_indirect.c
510
rw_exit(&vd->vdev_indirect_rwlock);
usr/src/uts/common/fs/zfs/vdev_indirect.c
531
vd->vdev_id, dmu_tx_get_txg(tx), vic->vic_mapping_object,
usr/src/uts/common/fs/zfs/vdev_indirect.c
592
spa_condense_indirect_generate_new_mapping(vdev_t *vd,
usr/src/uts/common/fs/zfs/vdev_indirect.c
595
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev_indirect.c
597
vdev_indirect_mapping_t *old_mapping = vd->vdev_indirect_mapping;
usr/src/uts/common/fs/zfs/vdev_indirect.c
601
ASSERT3P(vd->vdev_ops, ==, &vdev_indirect_ops);
usr/src/uts/common/fs/zfs/vdev_indirect.c
602
ASSERT3U(vd->vdev_id, ==, spa->spa_condensing_indirect_phys.scip_vdev);
usr/src/uts/common/fs/zfs/vdev_indirect.c
605
(u_longlong_t)vd->vdev_id,
usr/src/uts/common/fs/zfs/vdev_indirect.c
612
"at index %llu", (u_longlong_t)vd->vdev_id,
usr/src/uts/common/fs/zfs/vdev_indirect.c
650
vdev_t *vd;
usr/src/uts/common/fs/zfs/vdev_indirect.c
654
vd = vdev_lookup_top(spa, spa->spa_condensing_indirect_phys.scip_vdev);
usr/src/uts/common/fs/zfs/vdev_indirect.c
655
ASSERT3P(vd, !=, NULL);
usr/src/uts/common/fs/zfs/vdev_indirect.c
663
vdev_indirect_mapping_t *old_mapping = vd->vdev_indirect_mapping;
usr/src/uts/common/fs/zfs/vdev_indirect.c
666
ASSERT3U(vd->vdev_id, ==, scip->scip_vdev);
usr/src/uts/common/fs/zfs/vdev_indirect.c
669
ASSERT3P(vd->vdev_ops, ==, &vdev_indirect_ops);
usr/src/uts/common/fs/zfs/vdev_indirect.c
683
scip->scip_prev_obsolete_sm_object, 0, vd->vdev_asize, 0));
usr/src/uts/common/fs/zfs/vdev_indirect.c
730
spa_condense_indirect_generate_new_mapping(vd, counts,
usr/src/uts/common/fs/zfs/vdev_indirect.c
753
spa_condense_indirect_start_sync(vdev_t *vd, dmu_tx_t *tx)
usr/src/uts/common/fs/zfs/vdev_indirect.c
755
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev_indirect.c
763
ASSERT3P(vd->vdev_ops, ==, &vdev_indirect_ops);
usr/src/uts/common/fs/zfs/vdev_indirect.c
765
ASSERT(vdev_indirect_mapping_num_entries(vd->vdev_indirect_mapping));
usr/src/uts/common/fs/zfs/vdev_indirect.c
767
uint64_t obsolete_sm_obj = vdev_obsolete_sm_object(vd);
usr/src/uts/common/fs/zfs/vdev_indirect.c
770
scip->scip_vdev = vd->vdev_id;
usr/src/uts/common/fs/zfs/vdev_indirect.c
780
space_map_close(vd->vdev_obsolete_sm);
usr/src/uts/common/fs/zfs/vdev_indirect.c
781
vd->vdev_obsolete_sm = NULL;
usr/src/uts/common/fs/zfs/vdev_indirect.c
782
VERIFY0(zap_remove(spa->spa_meta_objset, vd->vdev_top_zap,
usr/src/uts/common/fs/zfs/vdev_indirect.c
795
vd->vdev_id, dmu_tx_get_txg(tx),
usr/src/uts/common/fs/zfs/vdev_indirect.c
809
vdev_indirect_sync_obsolete(vdev_t *vd, dmu_tx_t *tx)
usr/src/uts/common/fs/zfs/vdev_indirect.c
811
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev_indirect.c
812
vdev_indirect_config_t *vic = &vd->vdev_indirect_config;
usr/src/uts/common/fs/zfs/vdev_indirect.c
815
ASSERT(range_tree_space(vd->vdev_obsolete_segments) > 0);
usr/src/uts/common/fs/zfs/vdev_indirect.c
816
ASSERT(vd->vdev_removing || vd->vdev_ops == &vdev_indirect_ops);
usr/src/uts/common/fs/zfs/vdev_indirect.c
819
if (vdev_obsolete_sm_object(vd) == 0) {
usr/src/uts/common/fs/zfs/vdev_indirect.c
824
ASSERT(vd->vdev_top_zap != 0);
usr/src/uts/common/fs/zfs/vdev_indirect.c
825
VERIFY0(zap_add(vd->vdev_spa->spa_meta_objset, vd->vdev_top_zap,
usr/src/uts/common/fs/zfs/vdev_indirect.c
828
ASSERT3U(vdev_obsolete_sm_object(vd), !=, 0);
usr/src/uts/common/fs/zfs/vdev_indirect.c
831
VERIFY0(space_map_open(&vd->vdev_obsolete_sm,
usr/src/uts/common/fs/zfs/vdev_indirect.c
833
0, vd->vdev_asize, 0));
usr/src/uts/common/fs/zfs/vdev_indirect.c
836
ASSERT(vd->vdev_obsolete_sm != NULL);
usr/src/uts/common/fs/zfs/vdev_indirect.c
837
ASSERT3U(vdev_obsolete_sm_object(vd), ==,
usr/src/uts/common/fs/zfs/vdev_indirect.c
838
space_map_object(vd->vdev_obsolete_sm));
usr/src/uts/common/fs/zfs/vdev_indirect.c
840
space_map_write(vd->vdev_obsolete_sm,
usr/src/uts/common/fs/zfs/vdev_indirect.c
841
vd->vdev_obsolete_segments, SM_ALLOC, SM_NO_VDEVID, tx);
usr/src/uts/common/fs/zfs/vdev_indirect.c
842
range_tree_vacate(vd->vdev_obsolete_segments, NULL, NULL);
usr/src/uts/common/fs/zfs/vdev_indirect.c
889
vdev_obsolete_sm_object(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev_indirect.c
891
ASSERT0(spa_config_held(vd->vdev_spa, SCL_ALL, RW_WRITER));
usr/src/uts/common/fs/zfs/vdev_indirect.c
892
if (vd->vdev_top_zap == 0) {
usr/src/uts/common/fs/zfs/vdev_indirect.c
897
int err = zap_lookup(vd->vdev_spa->spa_meta_objset, vd->vdev_top_zap,
usr/src/uts/common/fs/zfs/vdev_indirect.c
906
vdev_obsolete_counts_are_precise(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev_indirect.c
908
ASSERT0(spa_config_held(vd->vdev_spa, SCL_ALL, RW_WRITER));
usr/src/uts/common/fs/zfs/vdev_indirect.c
909
if (vd->vdev_top_zap == 0) {
usr/src/uts/common/fs/zfs/vdev_indirect.c
914
int err = zap_lookup(vd->vdev_spa->spa_meta_objset, vd->vdev_top_zap,
usr/src/uts/common/fs/zfs/vdev_indirect.c
924
vdev_indirect_close(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev_indirect.c
930
vdev_indirect_open(vdev_t *vd, uint64_t *psize, uint64_t *max_psize,
usr/src/uts/common/fs/zfs/vdev_indirect.c
933
*psize = *max_psize = vd->vdev_asize +
usr/src/uts/common/fs/zfs/vdev_indirect.c
935
*ashift = vd->vdev_ashift;
usr/src/uts/common/fs/zfs/vdev_indirect.c
948
rs_alloc(vdev_t *vd, uint64_t offset, uint64_t asize, uint64_t split_offset)
usr/src/uts/common/fs/zfs/vdev_indirect.c
951
rs->rs_vd = vd;
usr/src/uts/common/fs/zfs/vdev_indirect.c
972
vdev_indirect_mapping_duplicate_adjacent_entries(vdev_t *vd, uint64_t offset,
usr/src/uts/common/fs/zfs/vdev_indirect.c
976
vdev_indirect_mapping_t *vim = vd->vdev_indirect_mapping;
usr/src/uts/common/fs/zfs/vdev_indirect.c
979
ASSERT(RW_READ_HELD(&vd->vdev_indirect_rwlock));
usr/src/uts/common/fs/zfs/vdev_initialize.c
100
vdev_initialize_change_state(vdev_t *vd, vdev_initializing_state_t new_state)
usr/src/uts/common/fs/zfs/vdev_initialize.c
102
ASSERT(MUTEX_HELD(&vd->vdev_initialize_lock));
usr/src/uts/common/fs/zfs/vdev_initialize.c
103
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev_initialize.c
105
if (new_state == vd->vdev_initialize_state)
usr/src/uts/common/fs/zfs/vdev_initialize.c
112
*guid = vd->vdev_guid;
usr/src/uts/common/fs/zfs/vdev_initialize.c
117
if (vd->vdev_initialize_state != VDEV_INITIALIZE_SUSPENDED) {
usr/src/uts/common/fs/zfs/vdev_initialize.c
118
vd->vdev_initialize_action_time = gethrestime_sec();
usr/src/uts/common/fs/zfs/vdev_initialize.c
120
vd->vdev_initialize_state = new_state;
usr/src/uts/common/fs/zfs/vdev_initialize.c
130
"vdev=%s activated", vd->vdev_path);
usr/src/uts/common/fs/zfs/vdev_initialize.c
134
"vdev=%s suspended", vd->vdev_path);
usr/src/uts/common/fs/zfs/vdev_initialize.c
138
"vdev=%s canceled", vd->vdev_path);
usr/src/uts/common/fs/zfs/vdev_initialize.c
142
"vdev=%s complete", vd->vdev_path);
usr/src/uts/common/fs/zfs/vdev_initialize.c
154
vdev_t *vd = zio->io_vd;
usr/src/uts/common/fs/zfs/vdev_initialize.c
155
mutex_enter(&vd->vdev_initialize_io_lock);
usr/src/uts/common/fs/zfs/vdev_initialize.c
156
if (zio->io_error == ENXIO && !vdev_writeable(vd)) {
usr/src/uts/common/fs/zfs/vdev_initialize.c
163
&vd->vdev_initialize_offset[zio->io_txg & TXG_MASK];
usr/src/uts/common/fs/zfs/vdev_initialize.c
172
vd->vdev_stat.vs_initialize_errors++;
usr/src/uts/common/fs/zfs/vdev_initialize.c
174
vd->vdev_initialize_bytes_done += zio->io_orig_size;
usr/src/uts/common/fs/zfs/vdev_initialize.c
176
ASSERT3U(vd->vdev_initialize_inflight, >, 0);
usr/src/uts/common/fs/zfs/vdev_initialize.c
177
vd->vdev_initialize_inflight--;
usr/src/uts/common/fs/zfs/vdev_initialize.c
178
cv_broadcast(&vd->vdev_initialize_io_cv);
usr/src/uts/common/fs/zfs/vdev_initialize.c
179
mutex_exit(&vd->vdev_initialize_io_lock);
usr/src/uts/common/fs/zfs/vdev_initialize.c
181
spa_config_exit(vd->vdev_spa, SCL_STATE_ALL, vd);
usr/src/uts/common/fs/zfs/vdev_initialize.c
186
vdev_initialize_write(vdev_t *vd, uint64_t start, uint64_t size, abd_t *data)
usr/src/uts/common/fs/zfs/vdev_initialize.c
188
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev_initialize.c
191
mutex_enter(&vd->vdev_initialize_io_lock);
usr/src/uts/common/fs/zfs/vdev_initialize.c
192
while (vd->vdev_initialize_inflight >= zfs_initialize_limit) {
usr/src/uts/common/fs/zfs/vdev_initialize.c
193
cv_wait(&vd->vdev_initialize_io_cv,
usr/src/uts/common/fs/zfs/vdev_initialize.c
194
&vd->vdev_initialize_io_lock);
usr/src/uts/common/fs/zfs/vdev_initialize.c
196
vd->vdev_initialize_inflight++;
usr/src/uts/common/fs/zfs/vdev_initialize.c
197
mutex_exit(&vd->vdev_initialize_io_lock);
usr/src/uts/common/fs/zfs/vdev_initialize.c
203
spa_config_enter(spa, SCL_STATE_ALL, vd, RW_READER);
usr/src/uts/common/fs/zfs/vdev_initialize.c
204
mutex_enter(&vd->vdev_initialize_lock);
usr/src/uts/common/fs/zfs/vdev_initialize.c
206
if (vd->vdev_initialize_offset[txg & TXG_MASK] == 0) {
usr/src/uts/common/fs/zfs/vdev_initialize.c
208
*guid = vd->vdev_guid;
usr/src/uts/common/fs/zfs/vdev_initialize.c
220
if (vdev_initialize_should_stop(vd)) {
usr/src/uts/common/fs/zfs/vdev_initialize.c
221
mutex_enter(&vd->vdev_initialize_io_lock);
usr/src/uts/common/fs/zfs/vdev_initialize.c
222
ASSERT3U(vd->vdev_initialize_inflight, >, 0);
usr/src/uts/common/fs/zfs/vdev_initialize.c
223
vd->vdev_initialize_inflight--;
usr/src/uts/common/fs/zfs/vdev_initialize.c
224
mutex_exit(&vd->vdev_initialize_io_lock);
usr/src/uts/common/fs/zfs/vdev_initialize.c
225
spa_config_exit(vd->vdev_spa, SCL_STATE_ALL, vd);
usr/src/uts/common/fs/zfs/vdev_initialize.c
226
mutex_exit(&vd->vdev_initialize_lock);
usr/src/uts/common/fs/zfs/vdev_initialize.c
230
mutex_exit(&vd->vdev_initialize_lock);
usr/src/uts/common/fs/zfs/vdev_initialize.c
232
vd->vdev_initialize_offset[txg & TXG_MASK] = start + size;
usr/src/uts/common/fs/zfs/vdev_initialize.c
233
zio_nowait(zio_write_phys(spa->spa_txg_zio[txg & TXG_MASK], vd, start,
usr/src/uts/common/fs/zfs/vdev_initialize.c
279
vdev_initialize_ranges(vdev_t *vd, abd_t *data)
usr/src/uts/common/fs/zfs/vdev_initialize.c
281
range_tree_t *rt = vd->vdev_initialize_tree;
usr/src/uts/common/fs/zfs/vdev_initialize.c
296
error = vdev_initialize_write(vd,
usr/src/uts/common/fs/zfs/vdev_initialize.c
309
vdev_initialize_calculate_progress(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev_initialize.c
311
ASSERT(spa_config_held(vd->vdev_spa, SCL_CONFIG, RW_READER) ||
usr/src/uts/common/fs/zfs/vdev_initialize.c
312
spa_config_held(vd->vdev_spa, SCL_CONFIG, RW_WRITER));
usr/src/uts/common/fs/zfs/vdev_initialize.c
313
ASSERT(vd->vdev_leaf_zap != 0);
usr/src/uts/common/fs/zfs/vdev_initialize.c
315
vd->vdev_initialize_bytes_est = 0;
usr/src/uts/common/fs/zfs/vdev_initialize.c
316
vd->vdev_initialize_bytes_done = 0;
usr/src/uts/common/fs/zfs/vdev_initialize.c
318
for (uint64_t i = 0; i < vd->vdev_top->vdev_ms_count; i++) {
usr/src/uts/common/fs/zfs/vdev_initialize.c
319
metaslab_t *msp = vd->vdev_top->vdev_ms[i];
usr/src/uts/common/fs/zfs/vdev_initialize.c
325
if (vd->vdev_top->vdev_ops == &vdev_raidz_ops)
usr/src/uts/common/fs/zfs/vdev_initialize.c
326
ms_free /= vd->vdev_top->vdev_children;
usr/src/uts/common/fs/zfs/vdev_initialize.c
336
vdev_xlate(vd, &logical_rs, &physical_rs);
usr/src/uts/common/fs/zfs/vdev_initialize.c
338
if (vd->vdev_initialize_last_offset <= physical_rs.rs_start) {
usr/src/uts/common/fs/zfs/vdev_initialize.c
339
vd->vdev_initialize_bytes_est += ms_free;
usr/src/uts/common/fs/zfs/vdev_initialize.c
342
} else if (vd->vdev_initialize_last_offset >
usr/src/uts/common/fs/zfs/vdev_initialize.c
344
vd->vdev_initialize_bytes_done += ms_free;
usr/src/uts/common/fs/zfs/vdev_initialize.c
345
vd->vdev_initialize_bytes_est += ms_free;
usr/src/uts/common/fs/zfs/vdev_initialize.c
365
vdev_xlate(vd, &logical_rs, &physical_rs);
usr/src/uts/common/fs/zfs/vdev_initialize.c
369
vd->vdev_initialize_bytes_est += size;
usr/src/uts/common/fs/zfs/vdev_initialize.c
370
if (vd->vdev_initialize_last_offset >
usr/src/uts/common/fs/zfs/vdev_initialize.c
372
vd->vdev_initialize_bytes_done += size;
usr/src/uts/common/fs/zfs/vdev_initialize.c
373
} else if (vd->vdev_initialize_last_offset >
usr/src/uts/common/fs/zfs/vdev_initialize.c
375
vd->vdev_initialize_last_offset <
usr/src/uts/common/fs/zfs/vdev_initialize.c
377
vd->vdev_initialize_bytes_done +=
usr/src/uts/common/fs/zfs/vdev_initialize.c
378
vd->vdev_initialize_last_offset -
usr/src/uts/common/fs/zfs/vdev_initialize.c
387
vdev_initialize_load(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev_initialize.c
390
ASSERT(spa_config_held(vd->vdev_spa, SCL_CONFIG, RW_READER) ||
usr/src/uts/common/fs/zfs/vdev_initialize.c
391
spa_config_held(vd->vdev_spa, SCL_CONFIG, RW_WRITER));
usr/src/uts/common/fs/zfs/vdev_initialize.c
392
ASSERT(vd->vdev_leaf_zap != 0);
usr/src/uts/common/fs/zfs/vdev_initialize.c
394
if (vd->vdev_initialize_state == VDEV_INITIALIZE_ACTIVE ||
usr/src/uts/common/fs/zfs/vdev_initialize.c
395
vd->vdev_initialize_state == VDEV_INITIALIZE_SUSPENDED) {
usr/src/uts/common/fs/zfs/vdev_initialize.c
396
err = zap_lookup(vd->vdev_spa->spa_meta_objset,
usr/src/uts/common/fs/zfs/vdev_initialize.c
397
vd->vdev_leaf_zap, VDEV_LEAF_ZAP_INITIALIZE_LAST_OFFSET,
usr/src/uts/common/fs/zfs/vdev_initialize.c
398
sizeof (vd->vdev_initialize_last_offset), 1,
usr/src/uts/common/fs/zfs/vdev_initialize.c
399
&vd->vdev_initialize_last_offset);
usr/src/uts/common/fs/zfs/vdev_initialize.c
401
vd->vdev_initialize_last_offset = 0;
usr/src/uts/common/fs/zfs/vdev_initialize.c
406
vdev_initialize_calculate_progress(vd);
usr/src/uts/common/fs/zfs/vdev_initialize.c
418
vdev_t *vd = arg;
usr/src/uts/common/fs/zfs/vdev_initialize.c
423
ASSERT(vd->vdev_ops->vdev_op_leaf);
usr/src/uts/common/fs/zfs/vdev_initialize.c
424
vdev_xlate(vd, &logical_rs, &physical_rs);
usr/src/uts/common/fs/zfs/vdev_initialize.c
426
IMPLY(vd->vdev_top == vd,
usr/src/uts/common/fs/zfs/vdev_initialize.c
428
IMPLY(vd->vdev_top == vd,
usr/src/uts/common/fs/zfs/vdev_initialize.c
432
if (physical_rs.rs_end <= vd->vdev_initialize_last_offset)
usr/src/uts/common/fs/zfs/vdev_initialize.c
436
if (vd->vdev_initialize_last_offset > physical_rs.rs_start) {
usr/src/uts/common/fs/zfs/vdev_initialize.c
438
"(%llu, %llu)", vd->vdev_path,
usr/src/uts/common/fs/zfs/vdev_initialize.c
441
(u_longlong_t)vd->vdev_initialize_last_offset,
usr/src/uts/common/fs/zfs/vdev_initialize.c
444
vd->vdev_initialize_last_offset);
usr/src/uts/common/fs/zfs/vdev_initialize.c
445
physical_rs.rs_start = vd->vdev_initialize_last_offset;
usr/src/uts/common/fs/zfs/vdev_initialize.c
455
range_tree_add(vd->vdev_initialize_tree, physical_rs.rs_start,
usr/src/uts/common/fs/zfs/vdev_initialize.c
465
vdev_t *vd = arg;
usr/src/uts/common/fs/zfs/vdev_initialize.c
466
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev_initialize.c
470
ASSERT(vdev_is_concrete(vd));
usr/src/uts/common/fs/zfs/vdev_initialize.c
473
vd->vdev_initialize_last_offset = 0;
usr/src/uts/common/fs/zfs/vdev_initialize.c
474
VERIFY0(vdev_initialize_load(vd));
usr/src/uts/common/fs/zfs/vdev_initialize.c
478
vd->vdev_initialize_tree = range_tree_create(NULL, RANGE_SEG64, NULL,
usr/src/uts/common/fs/zfs/vdev_initialize.c
48
vdev_initialize_should_stop(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev_initialize.c
481
for (uint64_t i = 0; !vd->vdev_detached &&
usr/src/uts/common/fs/zfs/vdev_initialize.c
482
i < vd->vdev_top->vdev_ms_count; i++) {
usr/src/uts/common/fs/zfs/vdev_initialize.c
483
metaslab_t *msp = vd->vdev_top->vdev_ms[i];
usr/src/uts/common/fs/zfs/vdev_initialize.c
490
if (vd->vdev_top->vdev_ms_count != ms_count) {
usr/src/uts/common/fs/zfs/vdev_initialize.c
491
vdev_initialize_calculate_progress(vd);
usr/src/uts/common/fs/zfs/vdev_initialize.c
492
ms_count = vd->vdev_top->vdev_ms_count;
usr/src/uts/common/fs/zfs/vdev_initialize.c
50
return (vd->vdev_initialize_exit_wanted || !vdev_writeable(vd) ||
usr/src/uts/common/fs/zfs/vdev_initialize.c
503
vd);
usr/src/uts/common/fs/zfs/vdev_initialize.c
506
error = vdev_initialize_ranges(vd, deadbeef);
usr/src/uts/common/fs/zfs/vdev_initialize.c
51
vd->vdev_detached || vd->vdev_top->vdev_removing);
usr/src/uts/common/fs/zfs/vdev_initialize.c
510
range_tree_vacate(vd->vdev_initialize_tree, NULL, NULL);
usr/src/uts/common/fs/zfs/vdev_initialize.c
516
mutex_enter(&vd->vdev_initialize_io_lock);
usr/src/uts/common/fs/zfs/vdev_initialize.c
517
while (vd->vdev_initialize_inflight > 0) {
usr/src/uts/common/fs/zfs/vdev_initialize.c
518
cv_wait(&vd->vdev_initialize_io_cv,
usr/src/uts/common/fs/zfs/vdev_initialize.c
519
&vd->vdev_initialize_io_lock);
usr/src/uts/common/fs/zfs/vdev_initialize.c
521
mutex_exit(&vd->vdev_initialize_io_lock);
usr/src/uts/common/fs/zfs/vdev_initialize.c
523
range_tree_destroy(vd->vdev_initialize_tree);
usr/src/uts/common/fs/zfs/vdev_initialize.c
525
vd->vdev_initialize_tree = NULL;
usr/src/uts/common/fs/zfs/vdev_initialize.c
527
mutex_enter(&vd->vdev_initialize_lock);
usr/src/uts/common/fs/zfs/vdev_initialize.c
528
if (!vd->vdev_initialize_exit_wanted && vdev_writeable(vd)) {
usr/src/uts/common/fs/zfs/vdev_initialize.c
529
vdev_initialize_change_state(vd, VDEV_INITIALIZE_COMPLETE);
usr/src/uts/common/fs/zfs/vdev_initialize.c
531
ASSERT(vd->vdev_initialize_thread != NULL ||
usr/src/uts/common/fs/zfs/vdev_initialize.c
532
vd->vdev_initialize_inflight == 0);
usr/src/uts/common/fs/zfs/vdev_initialize.c
541
mutex_exit(&vd->vdev_initialize_lock);
usr/src/uts/common/fs/zfs/vdev_initialize.c
543
mutex_enter(&vd->vdev_initialize_lock);
usr/src/uts/common/fs/zfs/vdev_initialize.c
545
vd->vdev_initialize_thread = NULL;
usr/src/uts/common/fs/zfs/vdev_initialize.c
546
cv_broadcast(&vd->vdev_initialize_cv);
usr/src/uts/common/fs/zfs/vdev_initialize.c
547
mutex_exit(&vd->vdev_initialize_lock);
usr/src/uts/common/fs/zfs/vdev_initialize.c
555
vdev_initialize(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev_initialize.c
557
ASSERT(MUTEX_HELD(&vd->vdev_initialize_lock));
usr/src/uts/common/fs/zfs/vdev_initialize.c
558
ASSERT(vd->vdev_ops->vdev_op_leaf);
usr/src/uts/common/fs/zfs/vdev_initialize.c
559
ASSERT(vdev_is_concrete(vd));
usr/src/uts/common/fs/zfs/vdev_initialize.c
560
ASSERT3P(vd->vdev_initialize_thread, ==, NULL);
usr/src/uts/common/fs/zfs/vdev_initialize.c
561
ASSERT(!vd->vdev_detached);
usr/src/uts/common/fs/zfs/vdev_initialize.c
562
ASSERT(!vd->vdev_initialize_exit_wanted);
usr/src/uts/common/fs/zfs/vdev_initialize.c
563
ASSERT(!vd->vdev_top->vdev_removing);
usr/src/uts/common/fs/zfs/vdev_initialize.c
565
vdev_initialize_change_state(vd, VDEV_INITIALIZE_ACTIVE);
usr/src/uts/common/fs/zfs/vdev_initialize.c
566
vd->vdev_initialize_thread = thread_create(NULL, 0,
usr/src/uts/common/fs/zfs/vdev_initialize.c
567
vdev_initialize_thread, vd, 0, &p0, TS_RUN, maxclsyspri);
usr/src/uts/common/fs/zfs/vdev_initialize.c
574
vdev_initialize_stop_wait_impl(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev_initialize.c
576
ASSERT(MUTEX_HELD(&vd->vdev_initialize_lock));
usr/src/uts/common/fs/zfs/vdev_initialize.c
578
while (vd->vdev_initialize_thread != NULL)
usr/src/uts/common/fs/zfs/vdev_initialize.c
579
cv_wait(&vd->vdev_initialize_cv, &vd->vdev_initialize_lock);
usr/src/uts/common/fs/zfs/vdev_initialize.c
581
ASSERT3P(vd->vdev_initialize_thread, ==, NULL);
usr/src/uts/common/fs/zfs/vdev_initialize.c
582
vd->vdev_initialize_exit_wanted = B_FALSE;
usr/src/uts/common/fs/zfs/vdev_initialize.c
591
vdev_t *vd;
usr/src/uts/common/fs/zfs/vdev_initialize.c
595
while ((vd = list_remove_head(vd_list)) != NULL) {
usr/src/uts/common/fs/zfs/vdev_initialize.c
596
mutex_enter(&vd->vdev_initialize_lock);
usr/src/uts/common/fs/zfs/vdev_initialize.c
597
vdev_initialize_stop_wait_impl(vd);
usr/src/uts/common/fs/zfs/vdev_initialize.c
598
mutex_exit(&vd->vdev_initialize_lock);
usr/src/uts/common/fs/zfs/vdev_initialize.c
612
vdev_initialize_stop(vdev_t *vd, vdev_initializing_state_t tgt_state,
usr/src/uts/common/fs/zfs/vdev_initialize.c
615
ASSERT(!spa_config_held(vd->vdev_spa, SCL_CONFIG|SCL_STATE, RW_WRITER));
usr/src/uts/common/fs/zfs/vdev_initialize.c
616
ASSERT(MUTEX_HELD(&vd->vdev_initialize_lock));
usr/src/uts/common/fs/zfs/vdev_initialize.c
617
ASSERT(vd->vdev_ops->vdev_op_leaf);
usr/src/uts/common/fs/zfs/vdev_initialize.c
618
ASSERT(vdev_is_concrete(vd));
usr/src/uts/common/fs/zfs/vdev_initialize.c
624
if (vd->vdev_initialize_thread == NULL &&
usr/src/uts/common/fs/zfs/vdev_initialize.c
629
vdev_initialize_change_state(vd, tgt_state);
usr/src/uts/common/fs/zfs/vdev_initialize.c
630
vd->vdev_initialize_exit_wanted = B_TRUE;
usr/src/uts/common/fs/zfs/vdev_initialize.c
633
vdev_initialize_stop_wait_impl(vd);
usr/src/uts/common/fs/zfs/vdev_initialize.c
636
list_insert_tail(vd_list, vd);
usr/src/uts/common/fs/zfs/vdev_initialize.c
641
vdev_initialize_stop_all_impl(vdev_t *vd, vdev_initializing_state_t tgt_state,
usr/src/uts/common/fs/zfs/vdev_initialize.c
644
if (vd->vdev_ops->vdev_op_leaf && vdev_is_concrete(vd)) {
usr/src/uts/common/fs/zfs/vdev_initialize.c
645
mutex_enter(&vd->vdev_initialize_lock);
usr/src/uts/common/fs/zfs/vdev_initialize.c
646
vdev_initialize_stop(vd, tgt_state, vd_list);
usr/src/uts/common/fs/zfs/vdev_initialize.c
647
mutex_exit(&vd->vdev_initialize_lock);
usr/src/uts/common/fs/zfs/vdev_initialize.c
651
for (uint64_t i = 0; i < vd->vdev_children; i++) {
usr/src/uts/common/fs/zfs/vdev_initialize.c
652
vdev_initialize_stop_all_impl(vd->vdev_child[i], tgt_state,
usr/src/uts/common/fs/zfs/vdev_initialize.c
662
vdev_initialize_stop_all(vdev_t *vd, vdev_initializing_state_t tgt_state)
usr/src/uts/common/fs/zfs/vdev_initialize.c
664
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev_initialize.c
672
vdev_initialize_stop_all_impl(vd, tgt_state, &vd_list);
usr/src/uts/common/fs/zfs/vdev_initialize.c
675
if (vd->vdev_spa->spa_sync_on) {
usr/src/uts/common/fs/zfs/vdev_initialize.c
677
txg_wait_synced(spa_get_dsl(vd->vdev_spa), 0);
usr/src/uts/common/fs/zfs/vdev_initialize.c
684
vdev_initialize_restart(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev_initialize.c
687
ASSERT(!spa_config_held(vd->vdev_spa, SCL_ALL, RW_WRITER));
usr/src/uts/common/fs/zfs/vdev_initialize.c
689
if (vd->vdev_leaf_zap != 0) {
usr/src/uts/common/fs/zfs/vdev_initialize.c
69
vdev_t *vd = spa_lookup_by_guid(tx->tx_pool->dp_spa, guid, B_FALSE);
usr/src/uts/common/fs/zfs/vdev_initialize.c
690
mutex_enter(&vd->vdev_initialize_lock);
usr/src/uts/common/fs/zfs/vdev_initialize.c
692
int err = zap_lookup(vd->vdev_spa->spa_meta_objset,
usr/src/uts/common/fs/zfs/vdev_initialize.c
693
vd->vdev_leaf_zap, VDEV_LEAF_ZAP_INITIALIZE_STATE,
usr/src/uts/common/fs/zfs/vdev_initialize.c
696
vd->vdev_initialize_state = initialize_state;
usr/src/uts/common/fs/zfs/vdev_initialize.c
699
err = zap_lookup(vd->vdev_spa->spa_meta_objset,
usr/src/uts/common/fs/zfs/vdev_initialize.c
70
if (vd == NULL || vd->vdev_top->vdev_removing || !vdev_is_concrete(vd))
usr/src/uts/common/fs/zfs/vdev_initialize.c
700
vd->vdev_leaf_zap, VDEV_LEAF_ZAP_INITIALIZE_ACTION_TIME,
usr/src/uts/common/fs/zfs/vdev_initialize.c
703
vd->vdev_initialize_action_time = (time_t)timestamp;
usr/src/uts/common/fs/zfs/vdev_initialize.c
705
if (vd->vdev_initialize_state == VDEV_INITIALIZE_SUSPENDED ||
usr/src/uts/common/fs/zfs/vdev_initialize.c
706
vd->vdev_offline) {
usr/src/uts/common/fs/zfs/vdev_initialize.c
708
VERIFY0(vdev_initialize_load(vd));
usr/src/uts/common/fs/zfs/vdev_initialize.c
709
} else if (vd->vdev_initialize_state ==
usr/src/uts/common/fs/zfs/vdev_initialize.c
710
VDEV_INITIALIZE_ACTIVE && vdev_writeable(vd) &&
usr/src/uts/common/fs/zfs/vdev_initialize.c
711
!vd->vdev_top->vdev_removing &&
usr/src/uts/common/fs/zfs/vdev_initialize.c
712
vd->vdev_initialize_thread == NULL) {
usr/src/uts/common/fs/zfs/vdev_initialize.c
713
vdev_initialize(vd);
usr/src/uts/common/fs/zfs/vdev_initialize.c
716
mutex_exit(&vd->vdev_initialize_lock);
usr/src/uts/common/fs/zfs/vdev_initialize.c
719
for (uint64_t i = 0; i < vd->vdev_children; i++) {
usr/src/uts/common/fs/zfs/vdev_initialize.c
720
vdev_initialize_restart(vd->vdev_child[i]);
usr/src/uts/common/fs/zfs/vdev_initialize.c
73
uint64_t last_offset = vd->vdev_initialize_offset[txg & TXG_MASK];
usr/src/uts/common/fs/zfs/vdev_initialize.c
74
vd->vdev_initialize_offset[txg & TXG_MASK] = 0;
usr/src/uts/common/fs/zfs/vdev_initialize.c
76
VERIFY(vd->vdev_leaf_zap != 0);
usr/src/uts/common/fs/zfs/vdev_initialize.c
78
objset_t *mos = vd->vdev_spa->spa_meta_objset;
usr/src/uts/common/fs/zfs/vdev_initialize.c
81
vd->vdev_initialize_last_offset = last_offset;
usr/src/uts/common/fs/zfs/vdev_initialize.c
82
VERIFY0(zap_update(mos, vd->vdev_leaf_zap,
usr/src/uts/common/fs/zfs/vdev_initialize.c
86
if (vd->vdev_initialize_action_time > 0) {
usr/src/uts/common/fs/zfs/vdev_initialize.c
87
uint64_t val = (uint64_t)vd->vdev_initialize_action_time;
usr/src/uts/common/fs/zfs/vdev_initialize.c
88
VERIFY0(zap_update(mos, vd->vdev_leaf_zap,
usr/src/uts/common/fs/zfs/vdev_initialize.c
93
uint64_t initialize_state = vd->vdev_initialize_state;
usr/src/uts/common/fs/zfs/vdev_initialize.c
94
VERIFY0(zap_update(mos, vd->vdev_leaf_zap,
usr/src/uts/common/fs/zfs/vdev_label.c
1000
uint64_t guid_delta = spare_guid - vd->vdev_guid;
usr/src/uts/common/fs/zfs/vdev_label.c
1002
vd->vdev_guid += guid_delta;
usr/src/uts/common/fs/zfs/vdev_label.c
1004
for (vdev_t *pvd = vd; pvd != NULL; pvd = pvd->vdev_parent)
usr/src/uts/common/fs/zfs/vdev_label.c
1020
uint64_t guid_delta = l2cache_guid - vd->vdev_guid;
usr/src/uts/common/fs/zfs/vdev_label.c
1022
vd->vdev_guid += guid_delta;
usr/src/uts/common/fs/zfs/vdev_label.c
1024
for (vdev_t *pvd = vd; pvd != NULL; pvd = pvd->vdev_parent)
usr/src/uts/common/fs/zfs/vdev_label.c
1051
(reason == VDEV_LABEL_REMOVE && vd->vdev_isspare)) {
usr/src/uts/common/fs/zfs/vdev_label.c
1066
vd->vdev_guid) == 0);
usr/src/uts/common/fs/zfs/vdev_label.c
1068
(reason == VDEV_LABEL_REMOVE && vd->vdev_isl2cache)) {
usr/src/uts/common/fs/zfs/vdev_label.c
1079
vd->vdev_guid) == 0);
usr/src/uts/common/fs/zfs/vdev_label.c
1085
label = spa_config_generate(spa, vd, txg, B_FALSE);
usr/src/uts/common/fs/zfs/vdev_label.c
1128
vdev_label_write(zio, vd, l, vp_abd,
usr/src/uts/common/fs/zfs/vdev_label.c
1137
vdev_label_write(zio, vd, l, bootenv,
usr/src/uts/common/fs/zfs/vdev_label.c
1141
vdev_label_write(zio, vd, l, ub_abd,
usr/src/uts/common/fs/zfs/vdev_label.c
1164
if (error == 0 && !vd->vdev_isspare &&
usr/src/uts/common/fs/zfs/vdev_label.c
1166
spa_spare_exists(vd->vdev_guid, NULL, NULL)))
usr/src/uts/common/fs/zfs/vdev_label.c
1167
spa_spare_add(vd);
usr/src/uts/common/fs/zfs/vdev_label.c
1169
if (error == 0 && !vd->vdev_isl2cache &&
usr/src/uts/common/fs/zfs/vdev_label.c
1171
spa_l2cache_exists(vd->vdev_guid, NULL)))
usr/src/uts/common/fs/zfs/vdev_label.c
1172
spa_l2cache_add(vd);
usr/src/uts/common/fs/zfs/vdev_label.c
1205
vdev_label_read_bootenv_impl(zio_t *zio, vdev_t *vd, int flags)
usr/src/uts/common/fs/zfs/vdev_label.c
1207
for (int c = 0; c < vd->vdev_children; c++)
usr/src/uts/common/fs/zfs/vdev_label.c
1208
vdev_label_read_bootenv_impl(zio, vd->vdev_child[c], flags);
usr/src/uts/common/fs/zfs/vdev_label.c
1216
if (vd->vdev_ops->vdev_op_leaf && vdev_readable(vd)) {
usr/src/uts/common/fs/zfs/vdev_label.c
1218
vdev_label_read(zio, vd, l,
usr/src/uts/common/fs/zfs/vdev_label.c
1293
vdev_label_write_bootenv(vdev_t *vd, nvlist_t *env)
usr/src/uts/common/fs/zfs/vdev_label.c
1296
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev_label.c
1314
for (int c = 0; c < vd->vdev_children; c++) {
usr/src/uts/common/fs/zfs/vdev_label.c
1317
child_err = vdev_label_write_bootenv(vd->vdev_child[c], env);
usr/src/uts/common/fs/zfs/vdev_label.c
1326
if (!vd->vdev_ops->vdev_op_leaf || vdev_is_dead(vd) ||
usr/src/uts/common/fs/zfs/vdev_label.c
1327
!vdev_writeable(vd)) {
usr/src/uts/common/fs/zfs/vdev_label.c
1368
vdev_label_write(zio, vd, l, abd,
usr/src/uts/common/fs/zfs/vdev_label.c
1442
vdev_t *vd = zio->io_vd;
usr/src/uts/common/fs/zfs/vdev_label.c
1448
ASSERT3U(zio->io_size, ==, VDEV_UBERBLOCK_SIZE(vd));
usr/src/uts/common/fs/zfs/vdev_label.c
1461
cbp->ubl_vd = vd;
usr/src/uts/common/fs/zfs/vdev_label.c
1470
vdev_uberblock_load_impl(zio_t *zio, vdev_t *vd, int flags,
usr/src/uts/common/fs/zfs/vdev_label.c
1473
for (int c = 0; c < vd->vdev_children; c++)
usr/src/uts/common/fs/zfs/vdev_label.c
1474
vdev_uberblock_load_impl(zio, vd->vdev_child[c], flags, cbp);
usr/src/uts/common/fs/zfs/vdev_label.c
1476
if (vd->vdev_ops->vdev_op_leaf && vdev_readable(vd)) {
usr/src/uts/common/fs/zfs/vdev_label.c
1478
for (int n = 0; n < VDEV_UBERBLOCK_COUNT(vd); n++) {
usr/src/uts/common/fs/zfs/vdev_label.c
1479
vdev_label_read(zio, vd, l,
usr/src/uts/common/fs/zfs/vdev_label.c
1480
abd_alloc_linear(VDEV_UBERBLOCK_SIZE(vd),
usr/src/uts/common/fs/zfs/vdev_label.c
1481
B_TRUE), VDEV_UBERBLOCK_OFFSET(vd, n),
usr/src/uts/common/fs/zfs/vdev_label.c
1482
VDEV_UBERBLOCK_SIZE(vd),
usr/src/uts/common/fs/zfs/vdev_label.c
1559
uberblock_t *ub, vdev_t *vd, int flags)
usr/src/uts/common/fs/zfs/vdev_label.c
1561
for (uint64_t c = 0; c < vd->vdev_children; c++) {
usr/src/uts/common/fs/zfs/vdev_label.c
1563
ub, vd->vdev_child[c], flags);
usr/src/uts/common/fs/zfs/vdev_label.c
1566
if (!vd->vdev_ops->vdev_op_leaf)
usr/src/uts/common/fs/zfs/vdev_label.c
1569
if (!vdev_writeable(vd))
usr/src/uts/common/fs/zfs/vdev_label.c
1572
int m = spa_multihost(vd->vdev_spa) ? MMP_BLOCKS_PER_LABEL : 0;
usr/src/uts/common/fs/zfs/vdev_label.c
1573
int n = ub->ub_txg % (VDEV_UBERBLOCK_COUNT(vd) - m);
usr/src/uts/common/fs/zfs/vdev_label.c
1576
abd_t *ub_abd = abd_alloc_for_io(VDEV_UBERBLOCK_SIZE(vd), B_TRUE);
usr/src/uts/common/fs/zfs/vdev_label.c
1577
abd_zero(ub_abd, VDEV_UBERBLOCK_SIZE(vd));
usr/src/uts/common/fs/zfs/vdev_label.c
1581
vdev_label_write(zio, vd, l, ub_abd,
usr/src/uts/common/fs/zfs/vdev_label.c
1582
VDEV_UBERBLOCK_OFFSET(vd, n), VDEV_UBERBLOCK_SIZE(vd),
usr/src/uts/common/fs/zfs/vdev_label.c
1662
vdev_t *vd, int l, uint64_t txg, int flags)
usr/src/uts/common/fs/zfs/vdev_label.c
1670
for (int c = 0; c < vd->vdev_children; c++) {
usr/src/uts/common/fs/zfs/vdev_label.c
1672
vd->vdev_child[c], l, txg, flags);
usr/src/uts/common/fs/zfs/vdev_label.c
1675
if (!vd->vdev_ops->vdev_op_leaf)
usr/src/uts/common/fs/zfs/vdev_label.c
1678
if (!vdev_writeable(vd))
usr/src/uts/common/fs/zfs/vdev_label.c
1684
label = spa_config_generate(vd->vdev_spa, vd, txg, B_FALSE);
usr/src/uts/common/fs/zfs/vdev_label.c
1695
vdev_label_write(zio, vd, l, vp_abd,
usr/src/uts/common/fs/zfs/vdev_label.c
1711
vdev_t *vd;
usr/src/uts/common/fs/zfs/vdev_label.c
1720
for (vd = list_head(dl); vd != NULL; vd = list_next(dl, vd)) {
usr/src/uts/common/fs/zfs/vdev_label.c
1724
ASSERT(!vd->vdev_ishole);
usr/src/uts/common/fs/zfs/vdev_label.c
1727
(vd->vdev_islog || vd->vdev_aux != NULL) ?
usr/src/uts/common/fs/zfs/vdev_label.c
1730
vdev_label_sync(vio, good_writes, vd, l, txg, flags);
usr/src/uts/common/fs/zfs/vdev_label.c
1741
for (vd = list_head(dl); vd != NULL; vd = list_next(dl, vd))
usr/src/uts/common/fs/zfs/vdev_label.c
1742
zio_flush(zio, vd);
usr/src/uts/common/fs/zfs/vdev_label.c
1812
for (vdev_t *vd =
usr/src/uts/common/fs/zfs/vdev_label.c
1813
txg_list_head(&spa->spa_vdev_txg_list, TXG_CLEAN(txg)); vd != NULL;
usr/src/uts/common/fs/zfs/vdev_label.c
1814
vd = txg_list_next(&spa->spa_vdev_txg_list, vd, TXG_CLEAN(txg)))
usr/src/uts/common/fs/zfs/vdev_label.c
1815
zio_flush(zio, vd);
usr/src/uts/common/fs/zfs/vdev_label.c
188
vdev_label_read(zio_t *zio, vdev_t *vd, int l, abd_t *buf, uint64_t offset,
usr/src/uts/common/fs/zfs/vdev_label.c
196
zio_nowait(zio_read_phys(zio, vd,
usr/src/uts/common/fs/zfs/vdev_label.c
197
vdev_label_offset(vd->vdev_psize, l, offset),
usr/src/uts/common/fs/zfs/vdev_label.c
203
vdev_label_write(zio_t *zio, vdev_t *vd, int l, abd_t *buf, uint64_t offset,
usr/src/uts/common/fs/zfs/vdev_label.c
211
zio_nowait(zio_write_phys(zio, vd,
usr/src/uts/common/fs/zfs/vdev_label.c
212
vdev_label_offset(vd->vdev_psize, l, offset),
usr/src/uts/common/fs/zfs/vdev_label.c
221
vdev_config_generate_stats(vdev_t *vd, nvlist_t *nv)
usr/src/uts/common/fs/zfs/vdev_label.c
230
vdev_get_stats_ex(vd, vs, vsx);
usr/src/uts/common/fs/zfs/vdev_label.c
381
root_vdev_actions_getprogress(vdev_t *vd, nvlist_t *nvl)
usr/src/uts/common/fs/zfs/vdev_label.c
383
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev_label.c
385
if (vd != spa->spa_root_vdev)
usr/src/uts/common/fs/zfs/vdev_label.c
415
vdev_config_generate(spa_t *spa, vdev_t *vd, boolean_t getstats,
usr/src/uts/common/fs/zfs/vdev_label.c
419
vdev_indirect_config_t *vic = &vd->vdev_indirect_config;
usr/src/uts/common/fs/zfs/vdev_label.c
423
fnvlist_add_string(nv, ZPOOL_CONFIG_TYPE, vd->vdev_ops->vdev_op_type);
usr/src/uts/common/fs/zfs/vdev_label.c
425
fnvlist_add_uint64(nv, ZPOOL_CONFIG_ID, vd->vdev_id);
usr/src/uts/common/fs/zfs/vdev_label.c
426
fnvlist_add_uint64(nv, ZPOOL_CONFIG_GUID, vd->vdev_guid);
usr/src/uts/common/fs/zfs/vdev_label.c
428
if (vd->vdev_path != NULL)
usr/src/uts/common/fs/zfs/vdev_label.c
429
fnvlist_add_string(nv, ZPOOL_CONFIG_PATH, vd->vdev_path);
usr/src/uts/common/fs/zfs/vdev_label.c
431
if (vd->vdev_devid != NULL)
usr/src/uts/common/fs/zfs/vdev_label.c
432
fnvlist_add_string(nv, ZPOOL_CONFIG_DEVID, vd->vdev_devid);
usr/src/uts/common/fs/zfs/vdev_label.c
434
if (vd->vdev_physpath != NULL)
usr/src/uts/common/fs/zfs/vdev_label.c
436
vd->vdev_physpath);
usr/src/uts/common/fs/zfs/vdev_label.c
438
if (vd->vdev_fru != NULL)
usr/src/uts/common/fs/zfs/vdev_label.c
439
fnvlist_add_string(nv, ZPOOL_CONFIG_FRU, vd->vdev_fru);
usr/src/uts/common/fs/zfs/vdev_label.c
441
if (vd->vdev_nparity != 0) {
usr/src/uts/common/fs/zfs/vdev_label.c
442
ASSERT(strcmp(vd->vdev_ops->vdev_op_type,
usr/src/uts/common/fs/zfs/vdev_label.c
449
ASSERT(vd->vdev_nparity == 1 ||
usr/src/uts/common/fs/zfs/vdev_label.c
450
(vd->vdev_nparity <= 2 &&
usr/src/uts/common/fs/zfs/vdev_label.c
452
(vd->vdev_nparity <= 3 &&
usr/src/uts/common/fs/zfs/vdev_label.c
460
fnvlist_add_uint64(nv, ZPOOL_CONFIG_NPARITY, vd->vdev_nparity);
usr/src/uts/common/fs/zfs/vdev_label.c
463
if (vd->vdev_wholedisk != -1ULL)
usr/src/uts/common/fs/zfs/vdev_label.c
465
vd->vdev_wholedisk);
usr/src/uts/common/fs/zfs/vdev_label.c
467
if (vd->vdev_not_present && !(flags & VDEV_CONFIG_MISSING))
usr/src/uts/common/fs/zfs/vdev_label.c
470
if (vd->vdev_isspare)
usr/src/uts/common/fs/zfs/vdev_label.c
474
vd == vd->vdev_top) {
usr/src/uts/common/fs/zfs/vdev_label.c
476
vd->vdev_ms_array);
usr/src/uts/common/fs/zfs/vdev_label.c
478
vd->vdev_ms_shift);
usr/src/uts/common/fs/zfs/vdev_label.c
479
fnvlist_add_uint64(nv, ZPOOL_CONFIG_ASHIFT, vd->vdev_ashift);
usr/src/uts/common/fs/zfs/vdev_label.c
481
vd->vdev_asize);
usr/src/uts/common/fs/zfs/vdev_label.c
482
fnvlist_add_uint64(nv, ZPOOL_CONFIG_IS_LOG, vd->vdev_islog);
usr/src/uts/common/fs/zfs/vdev_label.c
483
if (vd->vdev_removing) {
usr/src/uts/common/fs/zfs/vdev_label.c
485
vd->vdev_removing);
usr/src/uts/common/fs/zfs/vdev_label.c
489
if (getstats && vd->vdev_alloc_bias != VDEV_BIAS_NONE) {
usr/src/uts/common/fs/zfs/vdev_label.c
492
switch (vd->vdev_alloc_bias) {
usr/src/uts/common/fs/zfs/vdev_label.c
503
ASSERT3U(vd->vdev_alloc_bias, ==,
usr/src/uts/common/fs/zfs/vdev_label.c
511
if (vd->vdev_dtl_sm != NULL) {
usr/src/uts/common/fs/zfs/vdev_label.c
513
space_map_object(vd->vdev_dtl_sm));
usr/src/uts/common/fs/zfs/vdev_label.c
531
if (vd->vdev_crtxg)
usr/src/uts/common/fs/zfs/vdev_label.c
532
fnvlist_add_uint64(nv, ZPOOL_CONFIG_CREATE_TXG, vd->vdev_crtxg);
usr/src/uts/common/fs/zfs/vdev_label.c
535
if (vd->vdev_leaf_zap != 0) {
usr/src/uts/common/fs/zfs/vdev_label.c
536
ASSERT(vd->vdev_ops->vdev_op_leaf);
usr/src/uts/common/fs/zfs/vdev_label.c
538
vd->vdev_leaf_zap);
usr/src/uts/common/fs/zfs/vdev_label.c
541
if (vd->vdev_top_zap != 0) {
usr/src/uts/common/fs/zfs/vdev_label.c
542
ASSERT(vd == vd->vdev_top);
usr/src/uts/common/fs/zfs/vdev_label.c
544
vd->vdev_top_zap);
usr/src/uts/common/fs/zfs/vdev_label.c
547
if (vd->vdev_resilver_deferred) {
usr/src/uts/common/fs/zfs/vdev_label.c
548
ASSERT(vd->vdev_ops->vdev_op_leaf);
usr/src/uts/common/fs/zfs/vdev_label.c
555
vdev_config_generate_stats(vd, nv);
usr/src/uts/common/fs/zfs/vdev_label.c
557
root_vdev_actions_getprogress(vd, nv);
usr/src/uts/common/fs/zfs/vdev_label.c
564
rw_enter(&vd->vdev_indirect_rwlock, RW_READER);
usr/src/uts/common/fs/zfs/vdev_label.c
565
if (vd->vdev_indirect_mapping != NULL) {
usr/src/uts/common/fs/zfs/vdev_label.c
566
ASSERT(vd->vdev_indirect_births != NULL);
usr/src/uts/common/fs/zfs/vdev_label.c
568
vd->vdev_indirect_mapping;
usr/src/uts/common/fs/zfs/vdev_label.c
572
rw_exit(&vd->vdev_indirect_rwlock);
usr/src/uts/common/fs/zfs/vdev_label.c
573
if (vd->vdev_mg != NULL &&
usr/src/uts/common/fs/zfs/vdev_label.c
574
vd->vdev_mg->mg_fragmentation != ZFS_FRAG_INVALID) {
usr/src/uts/common/fs/zfs/vdev_label.c
585
uint64_t to_alloc = vd->vdev_stat.vs_alloc;
usr/src/uts/common/fs/zfs/vdev_label.c
598
vd->vdev_mg->mg_histogram[i] <<
usr/src/uts/common/fs/zfs/vdev_label.c
602
vd->vdev_mg->mg_histogram[i];
usr/src/uts/common/fs/zfs/vdev_label.c
619
if (!vd->vdev_ops->vdev_op_leaf) {
usr/src/uts/common/fs/zfs/vdev_label.c
623
ASSERT(!vd->vdev_ishole);
usr/src/uts/common/fs/zfs/vdev_label.c
632
if (vd->vdev_children == 0)
usr/src/uts/common/fs/zfs/vdev_label.c
635
child = kmem_alloc(vd->vdev_children * sizeof (nvlist_t *),
usr/src/uts/common/fs/zfs/vdev_label.c
638
for (c = 0, idx = 0; c < vd->vdev_children; c++) {
usr/src/uts/common/fs/zfs/vdev_label.c
639
vdev_t *cvd = vd->vdev_child[c];
usr/src/uts/common/fs/zfs/vdev_label.c
662
kmem_free(child, vd->vdev_children * sizeof (nvlist_t *));
usr/src/uts/common/fs/zfs/vdev_label.c
667
if (vd->vdev_offline && !vd->vdev_tmpoffline)
usr/src/uts/common/fs/zfs/vdev_label.c
669
if (vd->vdev_resilver_txg != 0)
usr/src/uts/common/fs/zfs/vdev_label.c
671
vd->vdev_resilver_txg);
usr/src/uts/common/fs/zfs/vdev_label.c
672
if (vd->vdev_faulted)
usr/src/uts/common/fs/zfs/vdev_label.c
674
if (vd->vdev_degraded)
usr/src/uts/common/fs/zfs/vdev_label.c
676
if (vd->vdev_removed)
usr/src/uts/common/fs/zfs/vdev_label.c
678
if (vd->vdev_unspare)
usr/src/uts/common/fs/zfs/vdev_label.c
680
if (vd->vdev_ishole)
usr/src/uts/common/fs/zfs/vdev_label.c
683
switch (vd->vdev_stat.vs_aux) {
usr/src/uts/common/fs/zfs/vdev_label.c
696
if (vd->vdev_splitting && vd->vdev_orig_guid != 0LL) {
usr/src/uts/common/fs/zfs/vdev_label.c
698
vd->vdev_orig_guid);
usr/src/uts/common/fs/zfs/vdev_label.c
748
vdev_label_read_config(vdev_t *vd, uint64_t txg)
usr/src/uts/common/fs/zfs/vdev_label.c
750
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev_label.c
763
if (!vdev_readable(vd))
usr/src/uts/common/fs/zfs/vdev_label.c
775
vdev_label_read(zio, vd, l, vp_abd,
usr/src/uts/common/fs/zfs/vdev_label.c
816
vdev_dbgmsg(vd, "label discarded as txg is too large "
usr/src/uts/common/fs/zfs/vdev_label.c
831
vdev_inuse(vdev_t *vd, uint64_t crtxg, vdev_labeltype_t reason,
usr/src/uts/common/fs/zfs/vdev_label.c
834
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev_label.c
847
if ((label = vdev_label_read_config(vd, -1ULL)) == NULL)
usr/src/uts/common/fs/zfs/vdev_label.c
950
vdev_label_init(vdev_t *vd, uint64_t crtxg, vdev_labeltype_t reason)
usr/src/uts/common/fs/zfs/vdev_label.c
952
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev_label.c
968
for (int c = 0; c < vd->vdev_children; c++)
usr/src/uts/common/fs/zfs/vdev_label.c
969
if ((error = vdev_label_init(vd->vdev_child[c],
usr/src/uts/common/fs/zfs/vdev_label.c
974
vd->vdev_crtxg = crtxg;
usr/src/uts/common/fs/zfs/vdev_label.c
976
if (!vd->vdev_ops->vdev_op_leaf || !spa_writeable(spa))
usr/src/uts/common/fs/zfs/vdev_label.c
982
if (vdev_is_dead(vd))
usr/src/uts/common/fs/zfs/vdev_label.c
989
vdev_inuse(vd, crtxg, reason, &spare_guid, &l2cache_guid))
usr/src/uts/common/fs/zfs/vdev_mirror.c
180
vdev_mirror_load(mirror_map_t *mm, vdev_t *vd, uint64_t zio_offset)
usr/src/uts/common/fs/zfs/vdev_mirror.c
197
if (vd->vdev_ops->vdev_op_leaf)
usr/src/uts/common/fs/zfs/vdev_mirror.c
201
load = vdev_queue_length(vd);
usr/src/uts/common/fs/zfs/vdev_mirror.c
202
last_offset = vdev_queue_last_offset(vd);
usr/src/uts/common/fs/zfs/vdev_mirror.c
204
if (vd->vdev_nonrot) {
usr/src/uts/common/fs/zfs/vdev_mirror.c
248
vdev_t *vd = zio->io_vd;
usr/src/uts/common/fs/zfs/vdev_mirror.c
251
if (vd == NULL) {
usr/src/uts/common/fs/zfs/vdev_mirror.c
338
boolean_t replacing = (vd->vdev_ops == &vdev_replacing_ops ||
usr/src/uts/common/fs/zfs/vdev_mirror.c
339
vd->vdev_ops == &vdev_spare_ops) &&
usr/src/uts/common/fs/zfs/vdev_mirror.c
340
spa_load_state(vd->vdev_spa) == SPA_LOAD_NONE &&
usr/src/uts/common/fs/zfs/vdev_mirror.c
341
dsl_scan_resilvering(vd->vdev_spa->spa_dsl_pool);
usr/src/uts/common/fs/zfs/vdev_mirror.c
342
mm = vdev_mirror_map_alloc(vd->vdev_children, replacing,
usr/src/uts/common/fs/zfs/vdev_mirror.c
346
mc->mc_vd = vd->vdev_child[c];
usr/src/uts/common/fs/zfs/vdev_mirror.c
357
vdev_mirror_open(vdev_t *vd, uint64_t *asize, uint64_t *max_asize,
usr/src/uts/common/fs/zfs/vdev_mirror.c
363
if (vd->vdev_children == 0) {
usr/src/uts/common/fs/zfs/vdev_mirror.c
364
vd->vdev_stat.vs_aux = VDEV_AUX_BAD_LABEL;
usr/src/uts/common/fs/zfs/vdev_mirror.c
368
vdev_open_children(vd);
usr/src/uts/common/fs/zfs/vdev_mirror.c
370
for (int c = 0; c < vd->vdev_children; c++) {
usr/src/uts/common/fs/zfs/vdev_mirror.c
371
vdev_t *cvd = vd->vdev_child[c];
usr/src/uts/common/fs/zfs/vdev_mirror.c
384
if (numerrors == vd->vdev_children) {
usr/src/uts/common/fs/zfs/vdev_mirror.c
385
if (vdev_children_are_offline(vd))
usr/src/uts/common/fs/zfs/vdev_mirror.c
386
vd->vdev_stat.vs_aux = VDEV_AUX_CHILDREN_OFFLINE;
usr/src/uts/common/fs/zfs/vdev_mirror.c
388
vd->vdev_stat.vs_aux = VDEV_AUX_NO_REPLICAS;
usr/src/uts/common/fs/zfs/vdev_mirror.c
396
vdev_mirror_close(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev_mirror.c
398
for (int c = 0; c < vd->vdev_children; c++)
usr/src/uts/common/fs/zfs/vdev_mirror.c
399
vdev_close(vd->vdev_child[c]);
usr/src/uts/common/fs/zfs/vdev_mirror.c
768
vdev_mirror_state_change(vdev_t *vd, int faulted, int degraded)
usr/src/uts/common/fs/zfs/vdev_mirror.c
770
if (faulted == vd->vdev_children) {
usr/src/uts/common/fs/zfs/vdev_mirror.c
771
if (vdev_children_are_offline(vd)) {
usr/src/uts/common/fs/zfs/vdev_mirror.c
772
vdev_set_state(vd, B_FALSE, VDEV_STATE_OFFLINE,
usr/src/uts/common/fs/zfs/vdev_mirror.c
775
vdev_set_state(vd, B_FALSE, VDEV_STATE_CANT_OPEN,
usr/src/uts/common/fs/zfs/vdev_mirror.c
779
vdev_set_state(vd, B_FALSE, VDEV_STATE_DEGRADED, VDEV_AUX_NONE);
usr/src/uts/common/fs/zfs/vdev_mirror.c
781
vdev_set_state(vd, B_FALSE, VDEV_STATE_HEALTHY, VDEV_AUX_NONE);
usr/src/uts/common/fs/zfs/vdev_mirror.c
786
vdev_mirror_dumpio(vdev_t *vd, caddr_t data, size_t size,
usr/src/uts/common/fs/zfs/vdev_mirror.c
792
for (uint64_t c = 0; c < vd->vdev_children; c++) {
usr/src/uts/common/fs/zfs/vdev_mirror.c
793
vdev_t *cvd = vd->vdev_child[c];
usr/src/uts/common/fs/zfs/vdev_missing.c
48
vdev_missing_open(vdev_t *vd, uint64_t *psize, uint64_t *max_psize,
usr/src/uts/common/fs/zfs/vdev_missing.c
65
vdev_missing_close(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev_queue.c
258
vdev_queue_init(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev_queue.c
260
vdev_queue_t *vq = &vd->vdev_queue;
usr/src/uts/common/fs/zfs/vdev_queue.c
263
vq->vq_vdev = vd;
usr/src/uts/common/fs/zfs/vdev_queue.c
301
vdev_queue_fini(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev_queue.c
303
vdev_queue_t *vq = &vd->vdev_queue;
usr/src/uts/common/fs/zfs/vdev_queue.c
916
vdev_queue_length(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev_queue.c
918
return (avl_numnodes(&vd->vdev_queue.vq_active_tree));
usr/src/uts/common/fs/zfs/vdev_queue.c
922
vdev_queue_last_offset(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev_queue.c
924
return (vd->vdev_queue.vq_last_offset);
usr/src/uts/common/fs/zfs/vdev_raidz.c
1565
vdev_raidz_open(vdev_t *vd, uint64_t *asize, uint64_t *max_asize,
usr/src/uts/common/fs/zfs/vdev_raidz.c
1569
uint64_t nparity = vd->vdev_nparity;
usr/src/uts/common/fs/zfs/vdev_raidz.c
1577
vd->vdev_children < nparity + 1) {
usr/src/uts/common/fs/zfs/vdev_raidz.c
1578
vd->vdev_stat.vs_aux = VDEV_AUX_BAD_LABEL;
usr/src/uts/common/fs/zfs/vdev_raidz.c
1582
vdev_open_children(vd);
usr/src/uts/common/fs/zfs/vdev_raidz.c
1584
for (c = 0; c < vd->vdev_children; c++) {
usr/src/uts/common/fs/zfs/vdev_raidz.c
1585
cvd = vd->vdev_child[c];
usr/src/uts/common/fs/zfs/vdev_raidz.c
1598
*asize *= vd->vdev_children;
usr/src/uts/common/fs/zfs/vdev_raidz.c
1599
*max_asize *= vd->vdev_children;
usr/src/uts/common/fs/zfs/vdev_raidz.c
1602
vd->vdev_stat.vs_aux = VDEV_AUX_NO_REPLICAS;
usr/src/uts/common/fs/zfs/vdev_raidz.c
1610
vdev_raidz_close(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev_raidz.c
1614
for (c = 0; c < vd->vdev_children; c++)
usr/src/uts/common/fs/zfs/vdev_raidz.c
1615
vdev_close(vd->vdev_child[c]);
usr/src/uts/common/fs/zfs/vdev_raidz.c
1680
vdev_raidz_dumpio(vdev_t *vd, caddr_t data, size_t size,
usr/src/uts/common/fs/zfs/vdev_raidz.c
1683
vdev_t *tvd = vd->vdev_top;
usr/src/uts/common/fs/zfs/vdev_raidz.c
1719
rm = vdev_raidz_map_alloc(zio, tvd->vdev_ashift, vd->vdev_children,
usr/src/uts/common/fs/zfs/vdev_raidz.c
1720
vd->vdev_nparity);
usr/src/uts/common/fs/zfs/vdev_raidz.c
1727
cvd = vd->vdev_child[rc->rc_devidx];
usr/src/uts/common/fs/zfs/vdev_raidz.c
1772
vdev_raidz_asize(vdev_t *vd, uint64_t psize)
usr/src/uts/common/fs/zfs/vdev_raidz.c
1775
uint64_t ashift = vd->vdev_top->vdev_ashift;
usr/src/uts/common/fs/zfs/vdev_raidz.c
1776
uint64_t cols = vd->vdev_children;
usr/src/uts/common/fs/zfs/vdev_raidz.c
1777
uint64_t nparity = vd->vdev_nparity;
usr/src/uts/common/fs/zfs/vdev_raidz.c
1800
vdev_t *vd = zio->io_vd;
usr/src/uts/common/fs/zfs/vdev_raidz.c
1801
vdev_t *tvd = vd->vdev_top;
usr/src/uts/common/fs/zfs/vdev_raidz.c
1809
vdev_t *cvd = vd->vdev_child[rc->rc_devidx];
usr/src/uts/common/fs/zfs/vdev_raidz.c
1849
vdev_t *vd = zio->io_vd;
usr/src/uts/common/fs/zfs/vdev_raidz.c
1850
vdev_t *tvd = vd->vdev_top;
usr/src/uts/common/fs/zfs/vdev_raidz.c
1856
rm = vdev_raidz_map_alloc(zio, tvd->vdev_ashift, vd->vdev_children,
usr/src/uts/common/fs/zfs/vdev_raidz.c
1857
vd->vdev_nparity);
usr/src/uts/common/fs/zfs/vdev_raidz.c
1862
ASSERT3U(rm->rm_asize, ==, vdev_psize_to_asize(vd, zio->io_size));
usr/src/uts/common/fs/zfs/vdev_raidz.c
1869
cvd = vd->vdev_child[rc->rc_devidx];
usr/src/uts/common/fs/zfs/vdev_raidz.c
1891
cvd = vd->vdev_child[rc->rc_devidx];
usr/src/uts/common/fs/zfs/vdev_raidz.c
1911
cvd = vd->vdev_child[rc->rc_devidx];
usr/src/uts/common/fs/zfs/vdev_raidz.c
1950
vdev_t *vd = zio->io_vd->vdev_child[rc->rc_devidx];
usr/src/uts/common/fs/zfs/vdev_raidz.c
1956
mutex_enter(&vd->vdev_stat_lock);
usr/src/uts/common/fs/zfs/vdev_raidz.c
1957
vd->vdev_stat.vs_checksum_errors++;
usr/src/uts/common/fs/zfs/vdev_raidz.c
1958
mutex_exit(&vd->vdev_stat_lock);
usr/src/uts/common/fs/zfs/vdev_raidz.c
1963
(void) zfs_ereport_post_checksum(zio->io_spa, vd,
usr/src/uts/common/fs/zfs/vdev_raidz.c
2227
vdev_t *vd = zio->io_vd;
usr/src/uts/common/fs/zfs/vdev_raidz.c
2397
vd->vdev_child[rc->rc_devidx],
usr/src/uts/common/fs/zfs/vdev_raidz.c
2454
vd->vdev_child[rc->rc_devidx],
usr/src/uts/common/fs/zfs/vdev_raidz.c
2473
cvd = vd->vdev_child[rc->rc_devidx];
usr/src/uts/common/fs/zfs/vdev_raidz.c
2488
vdev_raidz_state_change(vdev_t *vd, int faulted, int degraded)
usr/src/uts/common/fs/zfs/vdev_raidz.c
2490
if (faulted > vd->vdev_nparity)
usr/src/uts/common/fs/zfs/vdev_raidz.c
2491
vdev_set_state(vd, B_FALSE, VDEV_STATE_CANT_OPEN,
usr/src/uts/common/fs/zfs/vdev_raidz.c
2494
vdev_set_state(vd, B_FALSE, VDEV_STATE_DEGRADED, VDEV_AUX_NONE);
usr/src/uts/common/fs/zfs/vdev_raidz.c
2496
vdev_set_state(vd, B_FALSE, VDEV_STATE_HEALTHY, VDEV_AUX_NONE);
usr/src/uts/common/fs/zfs/vdev_raidz.c
2506
vdev_raidz_need_resilver(vdev_t *vd, uint64_t offset, size_t psize)
usr/src/uts/common/fs/zfs/vdev_raidz.c
2508
uint64_t dcols = vd->vdev_children;
usr/src/uts/common/fs/zfs/vdev_raidz.c
2509
uint64_t nparity = vd->vdev_nparity;
usr/src/uts/common/fs/zfs/vdev_raidz.c
2510
uint64_t ashift = vd->vdev_top->vdev_ashift;
usr/src/uts/common/fs/zfs/vdev_raidz.c
2523
vdev_t *cvd = vd->vdev_child[devidx];
usr/src/uts/common/fs/zfs/vdev_removal.c
1017
spa_vdev_copy_one_child(vca, nzio, vd, start,
usr/src/uts/common/fs/zfs/vdev_removal.c
1021
spa_vdev_copy_one_child(vca, nzio, vd, start,
usr/src/uts/common/fs/zfs/vdev_removal.c
1027
ASSERT3U(start + size, <=, vd->vdev_ms_count << vd->vdev_ms_shift);
usr/src/uts/common/fs/zfs/vdev_removal.c
1028
vdev_dirty(vd, 0, NULL, txg);
usr/src/uts/common/fs/zfs/vdev_removal.c
1043
vdev_t *vd = vdev_lookup_top(spa, svr->svr_vdev_id);
usr/src/uts/common/fs/zfs/vdev_removal.c
1045
ASSERT3P(vd->vdev_ops, ==, &vdev_indirect_ops);
usr/src/uts/common/fs/zfs/vdev_removal.c
1054
vdev_destroy_spacemaps(vd, tx);
usr/src/uts/common/fs/zfs/vdev_removal.c
1061
vdev_destroy_unlink_zap(vd, fnvpair_value_uint64(pair), tx);
usr/src/uts/common/fs/zfs/vdev_removal.c
1068
"%s vdev %llu", spa_name(spa), vd->vdev_id);
usr/src/uts/common/fs/zfs/vdev_removal.c
1072
vdev_remove_enlist_zaps(vdev_t *vd, nvlist_t *zlist)
usr/src/uts/common/fs/zfs/vdev_removal.c
1075
ASSERT3P(vd->vdev_ops, !=, &vdev_raidz_ops);
usr/src/uts/common/fs/zfs/vdev_removal.c
1077
if (vd->vdev_leaf_zap != 0) {
usr/src/uts/common/fs/zfs/vdev_removal.c
1080
VDEV_REMOVAL_ZAP_OBJS, vd->vdev_leaf_zap);
usr/src/uts/common/fs/zfs/vdev_removal.c
1081
fnvlist_add_uint64(zlist, zkey, vd->vdev_leaf_zap);
usr/src/uts/common/fs/zfs/vdev_removal.c
1084
for (uint64_t id = 0; id < vd->vdev_children; id++) {
usr/src/uts/common/fs/zfs/vdev_removal.c
1085
vdev_remove_enlist_zaps(vd->vdev_child[id], zlist);
usr/src/uts/common/fs/zfs/vdev_removal.c
1090
vdev_remove_replace_with_indirect(vdev_t *vd, uint64_t txg)
usr/src/uts/common/fs/zfs/vdev_removal.c
1094
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev_removal.c
1103
vdev_remove_enlist_zaps(vd, svr->svr_zaplist);
usr/src/uts/common/fs/zfs/vdev_removal.c
1105
ivd = vdev_add_parent(vd, &vdev_indirect_ops);
usr/src/uts/common/fs/zfs/vdev_removal.c
1108
vd->vdev_leaf_zap = 0;
usr/src/uts/common/fs/zfs/vdev_removal.c
1110
vdev_remove_child(ivd, vd);
usr/src/uts/common/fs/zfs/vdev_removal.c
1113
ASSERT(!list_link_active(&vd->vdev_state_dirty_node));
usr/src/uts/common/fs/zfs/vdev_removal.c
1145
vdev_t *vd = vdev_lookup_top(spa, spa->spa_vdev_removal->svr_vdev_id);
usr/src/uts/common/fs/zfs/vdev_removal.c
1146
ASSERT3P(vd->vdev_initialize_thread, ==, NULL);
usr/src/uts/common/fs/zfs/vdev_removal.c
1147
ASSERT3P(vd->vdev_trim_thread, ==, NULL);
usr/src/uts/common/fs/zfs/vdev_removal.c
1148
ASSERT3P(vd->vdev_autotrim_thread, ==, NULL);
usr/src/uts/common/fs/zfs/vdev_removal.c
1150
sysevent_t *ev = spa_event_create(spa, vd, NULL,
usr/src/uts/common/fs/zfs/vdev_removal.c
1154
vd->vdev_id, txg);
usr/src/uts/common/fs/zfs/vdev_removal.c
1159
if (vd->vdev_mg != NULL) {
usr/src/uts/common/fs/zfs/vdev_removal.c
1160
vdev_metaslab_fini(vd);
usr/src/uts/common/fs/zfs/vdev_removal.c
1161
metaslab_group_destroy(vd->vdev_mg);
usr/src/uts/common/fs/zfs/vdev_removal.c
1162
vd->vdev_mg = NULL;
usr/src/uts/common/fs/zfs/vdev_removal.c
1165
ASSERT0(vd->vdev_stat.vs_space);
usr/src/uts/common/fs/zfs/vdev_removal.c
1166
ASSERT0(vd->vdev_stat.vs_dspace);
usr/src/uts/common/fs/zfs/vdev_removal.c
1168
vdev_remove_replace_with_indirect(vd, txg);
usr/src/uts/common/fs/zfs/vdev_removal.c
1184
ASSERT0(vd->vdev_top_zap);
usr/src/uts/common/fs/zfs/vdev_removal.c
1189
ASSERT0(vd->vdev_leaf_zap);
usr/src/uts/common/fs/zfs/vdev_removal.c
1192
(void) vdev_label_init(vd, 0, VDEV_LABEL_REMOVE);
usr/src/uts/common/fs/zfs/vdev_removal.c
1197
(void) spa_vdev_exit(spa, vd, txg, 0);
usr/src/uts/common/fs/zfs/vdev_removal.c
1210
spa_vdev_copy_impl(vdev_t *vd, spa_vdev_removal_t *svr, vdev_copy_arg_t *vca,
usr/src/uts/common/fs/zfs/vdev_removal.c
1291
int error = spa_vdev_copy_segment(vd,
usr/src/uts/common/fs/zfs/vdev_removal.c
1356
vdev_t *vd = vdev_lookup_top(spa, svr->svr_vdev_id);
usr/src/uts/common/fs/zfs/vdev_removal.c
1357
vdev_indirect_mapping_t *vim = vd->vdev_indirect_mapping;
usr/src/uts/common/fs/zfs/vdev_removal.c
1360
ASSERT3P(vd->vdev_ops, !=, &vdev_indirect_ops);
usr/src/uts/common/fs/zfs/vdev_removal.c
1361
ASSERT(vdev_is_concrete(vd));
usr/src/uts/common/fs/zfs/vdev_removal.c
1362
ASSERT(vd->vdev_removing);
usr/src/uts/common/fs/zfs/vdev_removal.c
1363
ASSERT(vd->vdev_indirect_config.vic_mapping_object != 0);
usr/src/uts/common/fs/zfs/vdev_removal.c
1377
for (msi = start_offset >> vd->vdev_ms_shift;
usr/src/uts/common/fs/zfs/vdev_removal.c
1378
msi < vd->vdev_ms_count && !svr->svr_thread_exit; msi++) {
usr/src/uts/common/fs/zfs/vdev_removal.c
1379
metaslab_t *msp = vd->vdev_ms[msi];
usr/src/uts/common/fs/zfs/vdev_removal.c
1380
ASSERT3U(msi, <=, vd->vdev_ms_count);
usr/src/uts/common/fs/zfs/vdev_removal.c
1477
vd = vdev_lookup_top(spa, svr->svr_vdev_id);
usr/src/uts/common/fs/zfs/vdev_removal.c
1483
spa_vdev_copy_impl(vd, svr, &vca, &max_alloc, tx);
usr/src/uts/common/fs/zfs/vdev_removal.c
1552
vdev_t *vd = vdev_lookup_top(spa, svr->svr_vdev_id);
usr/src/uts/common/fs/zfs/vdev_removal.c
1553
vdev_indirect_config_t *vic = &vd->vdev_indirect_config;
usr/src/uts/common/fs/zfs/vdev_removal.c
1554
vdev_indirect_mapping_t *vim = vd->vdev_indirect_mapping;
usr/src/uts/common/fs/zfs/vdev_removal.c
1560
if (vdev_obsolete_counts_are_precise(vd)) {
usr/src/uts/common/fs/zfs/vdev_removal.c
1562
VERIFY0(zap_remove(spa->spa_meta_objset, vd->vdev_top_zap,
usr/src/uts/common/fs/zfs/vdev_removal.c
1566
if (vdev_obsolete_sm_object(vd) != 0) {
usr/src/uts/common/fs/zfs/vdev_removal.c
1567
ASSERT(vd->vdev_obsolete_sm != NULL);
usr/src/uts/common/fs/zfs/vdev_removal.c
1568
ASSERT3U(vdev_obsolete_sm_object(vd), ==,
usr/src/uts/common/fs/zfs/vdev_removal.c
1569
space_map_object(vd->vdev_obsolete_sm));
usr/src/uts/common/fs/zfs/vdev_removal.c
1571
space_map_free(vd->vdev_obsolete_sm, tx);
usr/src/uts/common/fs/zfs/vdev_removal.c
1572
VERIFY0(zap_remove(spa->spa_meta_objset, vd->vdev_top_zap,
usr/src/uts/common/fs/zfs/vdev_removal.c
1574
space_map_close(vd->vdev_obsolete_sm);
usr/src/uts/common/fs/zfs/vdev_removal.c
1575
vd->vdev_obsolete_sm = NULL;
usr/src/uts/common/fs/zfs/vdev_removal.c
1584
for (uint64_t msi = 0; msi < vd->vdev_ms_count; msi++) {
usr/src/uts/common/fs/zfs/vdev_removal.c
1585
metaslab_t *msp = vd->vdev_ms[msi];
usr/src/uts/common/fs/zfs/vdev_removal.c
1632
free_mapped_segment_cb, vd);
usr/src/uts/common/fs/zfs/vdev_removal.c
1640
range_tree_vacate(vd->vdev_obsolete_segments, NULL, NULL);
usr/src/uts/common/fs/zfs/vdev_removal.c
1643
vdev_indirect_mapping_object(vd->vdev_indirect_mapping));
usr/src/uts/common/fs/zfs/vdev_removal.c
1644
vdev_indirect_mapping_close(vd->vdev_indirect_mapping);
usr/src/uts/common/fs/zfs/vdev_removal.c
1645
vd->vdev_indirect_mapping = NULL;
usr/src/uts/common/fs/zfs/vdev_removal.c
1650
vdev_indirect_births_object(vd->vdev_indirect_births));
usr/src/uts/common/fs/zfs/vdev_removal.c
1651
vdev_indirect_births_close(vd->vdev_indirect_births);
usr/src/uts/common/fs/zfs/vdev_removal.c
1652
vd->vdev_indirect_births = NULL;
usr/src/uts/common/fs/zfs/vdev_removal.c
1667
vd->vdev_removing = B_FALSE;
usr/src/uts/common/fs/zfs/vdev_removal.c
1668
vdev_config_dirty(vd);
usr/src/uts/common/fs/zfs/vdev_removal.c
1671
vd->vdev_id, dmu_tx_get_txg(tx));
usr/src/uts/common/fs/zfs/vdev_removal.c
1674
vd->vdev_id, (vd->vdev_path != NULL) ? vd->vdev_path : "-");
usr/src/uts/common/fs/zfs/vdev_removal.c
1693
vdev_t *vd = vdev_lookup_top(spa, vdid);
usr/src/uts/common/fs/zfs/vdev_removal.c
1694
metaslab_group_activate(vd->vdev_mg);
usr/src/uts/common/fs/zfs/vdev_removal.c
1729
vdev_remove_make_hole_and_free(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev_removal.c
1731
uint64_t id = vd->vdev_id;
usr/src/uts/common/fs/zfs/vdev_removal.c
1732
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev_removal.c
1738
vdev_free(vd);
usr/src/uts/common/fs/zfs/vdev_removal.c
1740
vd = vdev_alloc_common(spa, id, 0, &vdev_hole_ops);
usr/src/uts/common/fs/zfs/vdev_removal.c
1741
vdev_add_child(rvd, vd);
usr/src/uts/common/fs/zfs/vdev_removal.c
1754
spa_vdev_remove_log(vdev_t *vd, uint64_t *txg)
usr/src/uts/common/fs/zfs/vdev_removal.c
1756
metaslab_group_t *mg = vd->vdev_mg;
usr/src/uts/common/fs/zfs/vdev_removal.c
1757
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev_removal.c
1760
ASSERT(vd->vdev_islog);
usr/src/uts/common/fs/zfs/vdev_removal.c
1761
ASSERT(vd == vd->vdev_top);
usr/src/uts/common/fs/zfs/vdev_removal.c
1783
if (vd->vdev_stat.vs_alloc != 0)
usr/src/uts/common/fs/zfs/vdev_removal.c
1792
ASSERT0(vd->vdev_stat.vs_alloc);
usr/src/uts/common/fs/zfs/vdev_removal.c
1798
vd->vdev_removing = B_TRUE;
usr/src/uts/common/fs/zfs/vdev_removal.c
1800
vdev_dirty_leaves(vd, VDD_DTL, *txg);
usr/src/uts/common/fs/zfs/vdev_removal.c
1801
vdev_config_dirty(vd);
usr/src/uts/common/fs/zfs/vdev_removal.c
1823
vdev_metaslab_fini(vd);
usr/src/uts/common/fs/zfs/vdev_removal.c
1827
"%s vdev %llu (log) %s", spa_name(spa), vd->vdev_id,
usr/src/uts/common/fs/zfs/vdev_removal.c
1828
(vd->vdev_path != NULL) ? vd->vdev_path : "-");
usr/src/uts/common/fs/zfs/vdev_removal.c
1834
vdev_initialize_stop_all(vd, VDEV_INITIALIZE_CANCELED);
usr/src/uts/common/fs/zfs/vdev_removal.c
1835
vdev_trim_stop_all(vd, VDEV_TRIM_CANCELED);
usr/src/uts/common/fs/zfs/vdev_removal.c
1836
vdev_autotrim_stop_wait(vd);
usr/src/uts/common/fs/zfs/vdev_removal.c
1840
sysevent_t *ev = spa_event_create(spa, vd, NULL,
usr/src/uts/common/fs/zfs/vdev_removal.c
1846
ASSERT0(vd->vdev_top_zap);
usr/src/uts/common/fs/zfs/vdev_removal.c
1848
ASSERT0(vd->vdev_leaf_zap);
usr/src/uts/common/fs/zfs/vdev_removal.c
1850
(void) vdev_label_init(vd, 0, VDEV_LABEL_REMOVE);
usr/src/uts/common/fs/zfs/vdev_removal.c
1852
if (list_link_active(&vd->vdev_state_dirty_node))
usr/src/uts/common/fs/zfs/vdev_removal.c
1853
vdev_state_clean(vd);
usr/src/uts/common/fs/zfs/vdev_removal.c
1854
if (list_link_active(&vd->vdev_config_dirty_node))
usr/src/uts/common/fs/zfs/vdev_removal.c
1855
vdev_config_clean(vd);
usr/src/uts/common/fs/zfs/vdev_removal.c
1857
ASSERT0(vd->vdev_stat.vs_alloc);
usr/src/uts/common/fs/zfs/vdev_removal.c
1862
vdev_remove_make_hole_and_free(vd);
usr/src/uts/common/fs/zfs/vdev_removal.c
187
spa_vdev_removal_create(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev_removal.c
1871
spa_vdev_remove_top_check(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev_removal.c
1873
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev_removal.c
1875
if (vd != vd->vdev_top)
usr/src/uts/common/fs/zfs/vdev_removal.c
1885
metaslab_class_t *mc = vd->vdev_mg->mg_class;
usr/src/uts/common/fs/zfs/vdev_removal.c
1905
if (available < vd->vdev_stat.vs_dspace + spa_get_slop_space(spa)) {
usr/src/uts/common/fs/zfs/vdev_removal.c
1918
if (!vdev_dtl_empty(vd, DTL_MISSING) ||
usr/src/uts/common/fs/zfs/vdev_removal.c
1919
!vdev_dtl_empty(vd, DTL_OUTAGE))
usr/src/uts/common/fs/zfs/vdev_removal.c
1925
if (!vdev_readable(vd))
usr/src/uts/common/fs/zfs/vdev_removal.c
193
svr->svr_vdev_id = vd->vdev_id;
usr/src/uts/common/fs/zfs/vdev_removal.c
1976
spa_vdev_remove_top(vdev_t *vd, uint64_t *txg)
usr/src/uts/common/fs/zfs/vdev_removal.c
1978
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev_removal.c
1986
error = spa_vdev_remove_top_check(vd);
usr/src/uts/common/fs/zfs/vdev_removal.c
1998
metaslab_group_t *mg = vd->vdev_mg;
usr/src/uts/common/fs/zfs/vdev_removal.c
2021
vdev_initialize_stop_all(vd, VDEV_INITIALIZE_ACTIVE);
usr/src/uts/common/fs/zfs/vdev_removal.c
2022
vdev_trim_stop_all(vd, VDEV_TRIM_ACTIVE);
usr/src/uts/common/fs/zfs/vdev_removal.c
2023
vdev_autotrim_stop_wait(vd);
usr/src/uts/common/fs/zfs/vdev_removal.c
2032
error = spa_vdev_remove_top_check(vd);
usr/src/uts/common/fs/zfs/vdev_removal.c
2042
vd->vdev_removing = B_TRUE;
usr/src/uts/common/fs/zfs/vdev_removal.c
2044
vdev_dirty_leaves(vd, VDD_DTL, *txg);
usr/src/uts/common/fs/zfs/vdev_removal.c
2045
vdev_config_dirty(vd);
usr/src/uts/common/fs/zfs/vdev_removal.c
2049
(void *)(uintptr_t)vd->vdev_id, 0, ZFS_SPACE_CHECK_NONE, tx);
usr/src/uts/common/fs/zfs/vdev_removal.c
2067
vdev_t *vd;
usr/src/uts/common/fs/zfs/vdev_removal.c
2091
vd = spa_lookup_by_guid(spa, guid, B_FALSE);
usr/src/uts/common/fs/zfs/vdev_removal.c
2101
if (vd == NULL || unspare) {
usr/src/uts/common/fs/zfs/vdev_removal.c
2107
if (vd == NULL)
usr/src/uts/common/fs/zfs/vdev_removal.c
2108
vd = spa_lookup_by_guid(spa, guid, B_TRUE);
usr/src/uts/common/fs/zfs/vdev_removal.c
2109
ev = spa_event_create(spa, vd, NULL,
usr/src/uts/common/fs/zfs/vdev_removal.c
2128
vd = spa_lookup_by_guid(spa, guid, B_TRUE);
usr/src/uts/common/fs/zfs/vdev_removal.c
2129
ev = spa_event_create(spa, vd, NULL, ESC_ZFS_VDEV_REMOVE_AUX);
usr/src/uts/common/fs/zfs/vdev_removal.c
2134
} else if (vd != NULL && vd->vdev_islog) {
usr/src/uts/common/fs/zfs/vdev_removal.c
2136
error = spa_vdev_remove_log(vd, &txg);
usr/src/uts/common/fs/zfs/vdev_removal.c
2137
} else if (vd != NULL) {
usr/src/uts/common/fs/zfs/vdev_removal.c
2139
error = spa_vdev_remove_top(vd, &txg);
usr/src/uts/common/fs/zfs/vdev_removal.c
2186
vdev_t *vd = spa->spa_root_vdev->vdev_child[indirect_vdev_id];
usr/src/uts/common/fs/zfs/vdev_removal.c
2187
vdev_indirect_config_t *vic = &vd->vdev_indirect_config;
usr/src/uts/common/fs/zfs/vdev_removal.c
2188
vdev_indirect_mapping_t *vim = vd->vdev_indirect_mapping;
usr/src/uts/common/fs/zfs/vdev_removal.c
2190
ASSERT3P(vd->vdev_ops, ==, &vdev_indirect_ops);
usr/src/uts/common/fs/zfs/vdev_removal.c
238
vdev_t *vd = vdev_lookup_top(spa, vdev_id);
usr/src/uts/common/fs/zfs/vdev_removal.c
239
vdev_indirect_config_t *vic = &vd->vdev_indirect_config;
usr/src/uts/common/fs/zfs/vdev_removal.c
244
ASSERT3P(vd->vdev_ops, !=, &vdev_raidz_ops);
usr/src/uts/common/fs/zfs/vdev_removal.c
245
svr = spa_vdev_removal_create(vd);
usr/src/uts/common/fs/zfs/vdev_removal.c
247
ASSERT(vd->vdev_removing);
usr/src/uts/common/fs/zfs/vdev_removal.c
248
ASSERT3P(vd->vdev_indirect_mapping, ==, NULL);
usr/src/uts/common/fs/zfs/vdev_removal.c
259
VERIFY0(zap_add(spa->spa_meta_objset, vd->vdev_top_zap,
usr/src/uts/common/fs/zfs/vdev_removal.c
262
ASSERT3U(vdev_obsolete_counts_are_precise(vd), !=, 0);
usr/src/uts/common/fs/zfs/vdev_removal.c
266
vd->vdev_indirect_mapping =
usr/src/uts/common/fs/zfs/vdev_removal.c
269
vd->vdev_indirect_births =
usr/src/uts/common/fs/zfs/vdev_removal.c
271
spa->spa_removing_phys.sr_removing_vdev = vd->vdev_id;
usr/src/uts/common/fs/zfs/vdev_removal.c
283
for (uint64_t i = 0; i < vd->vdev_ms_count; i++) {
usr/src/uts/common/fs/zfs/vdev_removal.c
284
metaslab_t *ms = vd->vdev_ms[i];
usr/src/uts/common/fs/zfs/vdev_removal.c
307
ASSERT3P(txg_list_head(&vd->vdev_ms_list, TXG_CLEAN(txg)), ==, NULL);
usr/src/uts/common/fs/zfs/vdev_removal.c
334
vdev_config_dirty(vd);
usr/src/uts/common/fs/zfs/vdev_removal.c
337
"im_obj=%llu", vd->vdev_id, vd, dmu_tx_get_txg(tx),
usr/src/uts/common/fs/zfs/vdev_removal.c
341
"%s vdev %llu %s", spa_name(spa), vd->vdev_id,
usr/src/uts/common/fs/zfs/vdev_removal.c
342
(vd->vdev_path != NULL) ? vd->vdev_path : "-");
usr/src/uts/common/fs/zfs/vdev_removal.c
394
vdev_t *vd = vdev_lookup_top(spa,
usr/src/uts/common/fs/zfs/vdev_removal.c
397
if (vd == NULL) {
usr/src/uts/common/fs/zfs/vdev_removal.c
402
vdev_indirect_config_t *vic = &vd->vdev_indirect_config;
usr/src/uts/common/fs/zfs/vdev_removal.c
404
ASSERT(vdev_is_concrete(vd));
usr/src/uts/common/fs/zfs/vdev_removal.c
405
spa_vdev_removal_t *svr = spa_vdev_removal_create(vd);
usr/src/uts/common/fs/zfs/vdev_removal.c
406
ASSERT3U(svr->svr_vdev_id, ==, vd->vdev_id);
usr/src/uts/common/fs/zfs/vdev_removal.c
407
ASSERT(vd->vdev_removing);
usr/src/uts/common/fs/zfs/vdev_removal.c
409
vd->vdev_indirect_mapping = vdev_indirect_mapping_open(
usr/src/uts/common/fs/zfs/vdev_removal.c
411
vd->vdev_indirect_births = vdev_indirect_births_open(
usr/src/uts/common/fs/zfs/vdev_removal.c
422
vdev_t *vd = vdev_lookup_top(spa, indirect_vdev_id);
usr/src/uts/common/fs/zfs/vdev_removal.c
423
vdev_indirect_config_t *vic = &vd->vdev_indirect_config;
usr/src/uts/common/fs/zfs/vdev_removal.c
425
ASSERT3P(vd->vdev_ops, ==, &vdev_indirect_ops);
usr/src/uts/common/fs/zfs/vdev_removal.c
426
vd->vdev_indirect_mapping = vdev_indirect_mapping_open(
usr/src/uts/common/fs/zfs/vdev_removal.c
428
vd->vdev_indirect_births = vdev_indirect_births_open(
usr/src/uts/common/fs/zfs/vdev_removal.c
477
free_from_removing_vdev(vdev_t *vd, uint64_t offset, uint64_t size)
usr/src/uts/common/fs/zfs/vdev_removal.c
479
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev_removal.c
481
vdev_indirect_mapping_t *vim = vd->vdev_indirect_mapping;
usr/src/uts/common/fs/zfs/vdev_removal.c
485
ASSERT(vd->vdev_indirect_config.vic_mapping_object != 0);
usr/src/uts/common/fs/zfs/vdev_removal.c
486
ASSERT3U(vd->vdev_indirect_config.vic_mapping_object, ==,
usr/src/uts/common/fs/zfs/vdev_removal.c
488
ASSERT3U(vd->vdev_id, ==, svr->svr_vdev_id);
usr/src/uts/common/fs/zfs/vdev_removal.c
509
metaslab_free_concrete(vd, offset, size, B_FALSE);
usr/src/uts/common/fs/zfs/vdev_removal.c
641
vdev_indirect_mark_obsolete(vd, synced_offset, synced_size);
usr/src/uts/common/fs/zfs/vdev_removal.c
650
vdev_indirect_ops.vdev_op_remap(vd, synced_offset, synced_size,
usr/src/uts/common/fs/zfs/vdev_removal.c
671
vdev_t *vd = vdev_lookup_top(spa, svr->svr_vdev_id);
usr/src/uts/common/fs/zfs/vdev_removal.c
672
vdev_indirect_config_t *vic = &vd->vdev_indirect_config;
usr/src/uts/common/fs/zfs/vdev_removal.c
681
srp->sr_prev_indirect_vdev = vd->vdev_id;
usr/src/uts/common/fs/zfs/vdev_removal.c
697
vdev_t *vd = arg;
usr/src/uts/common/fs/zfs/vdev_removal.c
698
vdev_indirect_mark_obsolete(vd, offset, size);
usr/src/uts/common/fs/zfs/vdev_removal.c
700
vdev_indirect_ops.vdev_op_remap(vd, offset, size,
usr/src/uts/common/fs/zfs/vdev_removal.c
714
vdev_t *vd = vdev_lookup_top(spa, svr->svr_vdev_id);
usr/src/uts/common/fs/zfs/vdev_removal.c
715
vdev_indirect_config_t *vic = &vd->vdev_indirect_config;
usr/src/uts/common/fs/zfs/vdev_removal.c
717
vdev_indirect_mapping_t *vim = vd->vdev_indirect_mapping;
usr/src/uts/common/fs/zfs/vdev_removal.c
724
vdev_indirect_births_add_entry(vd->vdev_indirect_births,
usr/src/uts/common/fs/zfs/vdev_removal.c
733
free_mapped_segment_cb, vd);
usr/src/uts/common/fs/zfs/vdev_removal.c
904
spa_vdev_copy_segment(vdev_t *vd, range_tree_t *segs,
usr/src/uts/common/fs/zfs/vdev_removal.c
908
metaslab_group_t *mg = vd->vdev_mg;
usr/src/uts/common/fs/zfs/vdev_removal.c
909
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev_root.c
100
vdev_t *cvd = vd->vdev_child[c];
usr/src/uts/common/fs/zfs/vdev_root.c
111
if (too_many_errors(vd, numerrors)) {
usr/src/uts/common/fs/zfs/vdev_root.c
112
vd->vdev_stat.vs_aux = VDEV_AUX_NO_REPLICAS;
usr/src/uts/common/fs/zfs/vdev_root.c
124
vdev_root_close(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev_root.c
126
for (int c = 0; c < vd->vdev_children; c++)
usr/src/uts/common/fs/zfs/vdev_root.c
127
vdev_close(vd->vdev_child[c]);
usr/src/uts/common/fs/zfs/vdev_root.c
131
vdev_root_state_change(vdev_t *vd, int faulted, int degraded)
usr/src/uts/common/fs/zfs/vdev_root.c
133
if (too_many_errors(vd, faulted)) {
usr/src/uts/common/fs/zfs/vdev_root.c
134
vdev_set_state(vd, B_FALSE, VDEV_STATE_CANT_OPEN,
usr/src/uts/common/fs/zfs/vdev_root.c
137
vdev_set_state(vd, B_FALSE, VDEV_STATE_DEGRADED, VDEV_AUX_NONE);
usr/src/uts/common/fs/zfs/vdev_root.c
139
vdev_set_state(vd, B_FALSE, VDEV_STATE_HEALTHY, VDEV_AUX_NONE);
usr/src/uts/common/fs/zfs/vdev_root.c
42
vdev_root_core_tvds(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev_root.c
46
for (uint64_t c = 0; c < vd->vdev_children; c++) {
usr/src/uts/common/fs/zfs/vdev_root.c
47
vdev_t *cvd = vd->vdev_child[c];
usr/src/uts/common/fs/zfs/vdev_root.c
68
too_many_errors(vdev_t *vd, uint64_t numerrors)
usr/src/uts/common/fs/zfs/vdev_root.c
75
tvds = vdev_root_core_tvds(vd);
usr/src/uts/common/fs/zfs/vdev_root.c
81
return (numerrors > spa_missing_tvds_allowed(vd->vdev_spa));
usr/src/uts/common/fs/zfs/vdev_root.c
85
vdev_root_open(vdev_t *vd, uint64_t *asize, uint64_t *max_asize,
usr/src/uts/common/fs/zfs/vdev_root.c
88
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev_root.c
92
if (vd->vdev_children == 0) {
usr/src/uts/common/fs/zfs/vdev_root.c
93
vd->vdev_stat.vs_aux = VDEV_AUX_BAD_LABEL;
usr/src/uts/common/fs/zfs/vdev_root.c
97
vdev_open_children(vd);
usr/src/uts/common/fs/zfs/vdev_root.c
99
for (int c = 0; c < vd->vdev_children; c++) {
usr/src/uts/common/fs/zfs/vdev_trim.c
1001
vdev_trim_stop_wait_impl(vd);
usr/src/uts/common/fs/zfs/vdev_trim.c
1004
list_insert_tail(vd_list, vd);
usr/src/uts/common/fs/zfs/vdev_trim.c
1012
vdev_trim_stop_all_impl(vdev_t *vd, vdev_trim_state_t tgt_state,
usr/src/uts/common/fs/zfs/vdev_trim.c
1015
if (vd->vdev_ops->vdev_op_leaf && vdev_is_concrete(vd)) {
usr/src/uts/common/fs/zfs/vdev_trim.c
1016
mutex_enter(&vd->vdev_trim_lock);
usr/src/uts/common/fs/zfs/vdev_trim.c
1017
vdev_trim_stop(vd, tgt_state, vd_list);
usr/src/uts/common/fs/zfs/vdev_trim.c
1018
mutex_exit(&vd->vdev_trim_lock);
usr/src/uts/common/fs/zfs/vdev_trim.c
1022
for (uint64_t i = 0; i < vd->vdev_children; i++) {
usr/src/uts/common/fs/zfs/vdev_trim.c
1023
vdev_trim_stop_all_impl(vd->vdev_child[i], tgt_state,
usr/src/uts/common/fs/zfs/vdev_trim.c
1033
vdev_trim_stop_all(vdev_t *vd, vdev_trim_state_t tgt_state)
usr/src/uts/common/fs/zfs/vdev_trim.c
1035
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev_trim.c
1043
vdev_trim_stop_all_impl(vd, tgt_state, &vd_list);
usr/src/uts/common/fs/zfs/vdev_trim.c
1046
if (vd->vdev_spa->spa_sync_on) {
usr/src/uts/common/fs/zfs/vdev_trim.c
1048
txg_wait_synced(spa_get_dsl(vd->vdev_spa), 0);
usr/src/uts/common/fs/zfs/vdev_trim.c
1058
vdev_trim_restart(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev_trim.c
1061
ASSERT(!spa_config_held(vd->vdev_spa, SCL_ALL, RW_WRITER));
usr/src/uts/common/fs/zfs/vdev_trim.c
1063
if (vd->vdev_leaf_zap != 0) {
usr/src/uts/common/fs/zfs/vdev_trim.c
1064
mutex_enter(&vd->vdev_trim_lock);
usr/src/uts/common/fs/zfs/vdev_trim.c
1066
int err = zap_lookup(vd->vdev_spa->spa_meta_objset,
usr/src/uts/common/fs/zfs/vdev_trim.c
1067
vd->vdev_leaf_zap, VDEV_LEAF_ZAP_TRIM_STATE,
usr/src/uts/common/fs/zfs/vdev_trim.c
1070
vd->vdev_trim_state = trim_state;
usr/src/uts/common/fs/zfs/vdev_trim.c
1073
err = zap_lookup(vd->vdev_spa->spa_meta_objset,
usr/src/uts/common/fs/zfs/vdev_trim.c
1074
vd->vdev_leaf_zap, VDEV_LEAF_ZAP_TRIM_ACTION_TIME,
usr/src/uts/common/fs/zfs/vdev_trim.c
1077
vd->vdev_trim_action_time = (time_t)timestamp;
usr/src/uts/common/fs/zfs/vdev_trim.c
1079
if (vd->vdev_trim_state == VDEV_TRIM_SUSPENDED ||
usr/src/uts/common/fs/zfs/vdev_trim.c
1080
vd->vdev_offline) {
usr/src/uts/common/fs/zfs/vdev_trim.c
1082
VERIFY0(vdev_trim_load(vd));
usr/src/uts/common/fs/zfs/vdev_trim.c
1083
} else if (vd->vdev_trim_state == VDEV_TRIM_ACTIVE &&
usr/src/uts/common/fs/zfs/vdev_trim.c
1084
vdev_writeable(vd) && !vd->vdev_top->vdev_removing &&
usr/src/uts/common/fs/zfs/vdev_trim.c
1085
vd->vdev_trim_thread == NULL) {
usr/src/uts/common/fs/zfs/vdev_trim.c
1086
VERIFY0(vdev_trim_load(vd));
usr/src/uts/common/fs/zfs/vdev_trim.c
1087
vdev_trim(vd, vd->vdev_trim_rate,
usr/src/uts/common/fs/zfs/vdev_trim.c
1088
vd->vdev_trim_partial, vd->vdev_trim_secure);
usr/src/uts/common/fs/zfs/vdev_trim.c
1091
mutex_exit(&vd->vdev_trim_lock);
usr/src/uts/common/fs/zfs/vdev_trim.c
1094
for (uint64_t i = 0; i < vd->vdev_children; i++) {
usr/src/uts/common/fs/zfs/vdev_trim.c
1095
vdev_trim_restart(vd->vdev_child[i]);
usr/src/uts/common/fs/zfs/vdev_trim.c
1124
vdev_t *vd = arg;
usr/src/uts/common/fs/zfs/vdev_trim.c
1125
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev_trim.c
1128
mutex_enter(&vd->vdev_autotrim_lock);
usr/src/uts/common/fs/zfs/vdev_trim.c
1129
ASSERT3P(vd->vdev_top, ==, vd);
usr/src/uts/common/fs/zfs/vdev_trim.c
1130
ASSERT3P(vd->vdev_autotrim_thread, !=, NULL);
usr/src/uts/common/fs/zfs/vdev_trim.c
1131
mutex_exit(&vd->vdev_autotrim_lock);
usr/src/uts/common/fs/zfs/vdev_trim.c
1137
while (!vdev_autotrim_should_stop(vd)) {
usr/src/uts/common/fs/zfs/vdev_trim.c
1167
for (uint64_t i = shift % txgs_per_trim; i < vd->vdev_ms_count;
usr/src/uts/common/fs/zfs/vdev_trim.c
1169
metaslab_t *msp = vd->vdev_ms[i];
usr/src/uts/common/fs/zfs/vdev_trim.c
1222
uint64_t children = vd->vdev_children;
usr/src/uts/common/fs/zfs/vdev_trim.c
1227
tap[0].trim_vdev = vd;
usr/src/uts/common/fs/zfs/vdev_trim.c
1233
tap[c].trim_vdev = vd->vdev_child[c];
usr/src/uts/common/fs/zfs/vdev_trim.c
1351
for (uint64_t c = 0; c < vd->vdev_children; c++) {
usr/src/uts/common/fs/zfs/vdev_trim.c
1352
vdev_t *cvd = vd->vdev_child[c];
usr/src/uts/common/fs/zfs/vdev_trim.c
1369
for (uint64_t i = 0; i < vd->vdev_ms_count; i++) {
usr/src/uts/common/fs/zfs/vdev_trim.c
1370
metaslab_t *msp = vd->vdev_ms[i];
usr/src/uts/common/fs/zfs/vdev_trim.c
1378
mutex_enter(&vd->vdev_autotrim_lock);
usr/src/uts/common/fs/zfs/vdev_trim.c
1379
ASSERT(vd->vdev_autotrim_thread != NULL);
usr/src/uts/common/fs/zfs/vdev_trim.c
1380
vd->vdev_autotrim_thread = NULL;
usr/src/uts/common/fs/zfs/vdev_trim.c
1381
cv_broadcast(&vd->vdev_autotrim_cv);
usr/src/uts/common/fs/zfs/vdev_trim.c
1382
mutex_exit(&vd->vdev_autotrim_lock);
usr/src/uts/common/fs/zfs/vdev_trim.c
169
vdev_trim_should_stop(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev_trim.c
171
return (vd->vdev_trim_exit_wanted || !vdev_writeable(vd) ||
usr/src/uts/common/fs/zfs/vdev_trim.c
172
vd->vdev_detached || vd->vdev_top->vdev_removing);
usr/src/uts/common/fs/zfs/vdev_trim.c
205
vdev_t *vd = spa_lookup_by_guid(tx->tx_pool->dp_spa, guid, B_FALSE);
usr/src/uts/common/fs/zfs/vdev_trim.c
206
if (vd == NULL || vd->vdev_top->vdev_removing || !vdev_is_concrete(vd))
usr/src/uts/common/fs/zfs/vdev_trim.c
209
uint64_t last_offset = vd->vdev_trim_offset[txg & TXG_MASK];
usr/src/uts/common/fs/zfs/vdev_trim.c
210
vd->vdev_trim_offset[txg & TXG_MASK] = 0;
usr/src/uts/common/fs/zfs/vdev_trim.c
212
VERIFY3U(vd->vdev_leaf_zap, !=, 0);
usr/src/uts/common/fs/zfs/vdev_trim.c
214
objset_t *mos = vd->vdev_spa->spa_meta_objset;
usr/src/uts/common/fs/zfs/vdev_trim.c
216
if (last_offset > 0 || vd->vdev_trim_last_offset == UINT64_MAX) {
usr/src/uts/common/fs/zfs/vdev_trim.c
218
if (vd->vdev_trim_last_offset == UINT64_MAX)
usr/src/uts/common/fs/zfs/vdev_trim.c
221
vd->vdev_trim_last_offset = last_offset;
usr/src/uts/common/fs/zfs/vdev_trim.c
222
VERIFY0(zap_update(mos, vd->vdev_leaf_zap,
usr/src/uts/common/fs/zfs/vdev_trim.c
227
if (vd->vdev_trim_action_time > 0) {
usr/src/uts/common/fs/zfs/vdev_trim.c
228
uint64_t val = (uint64_t)vd->vdev_trim_action_time;
usr/src/uts/common/fs/zfs/vdev_trim.c
229
VERIFY0(zap_update(mos, vd->vdev_leaf_zap,
usr/src/uts/common/fs/zfs/vdev_trim.c
234
if (vd->vdev_trim_rate > 0) {
usr/src/uts/common/fs/zfs/vdev_trim.c
235
uint64_t rate = (uint64_t)vd->vdev_trim_rate;
usr/src/uts/common/fs/zfs/vdev_trim.c
240
VERIFY0(zap_update(mos, vd->vdev_leaf_zap,
usr/src/uts/common/fs/zfs/vdev_trim.c
244
uint64_t partial = vd->vdev_trim_partial;
usr/src/uts/common/fs/zfs/vdev_trim.c
248
VERIFY0(zap_update(mos, vd->vdev_leaf_zap, VDEV_LEAF_ZAP_TRIM_PARTIAL,
usr/src/uts/common/fs/zfs/vdev_trim.c
251
uint64_t secure = vd->vdev_trim_secure;
usr/src/uts/common/fs/zfs/vdev_trim.c
255
VERIFY0(zap_update(mos, vd->vdev_leaf_zap, VDEV_LEAF_ZAP_TRIM_SECURE,
usr/src/uts/common/fs/zfs/vdev_trim.c
259
uint64_t trim_state = vd->vdev_trim_state;
usr/src/uts/common/fs/zfs/vdev_trim.c
260
VERIFY0(zap_update(mos, vd->vdev_leaf_zap, VDEV_LEAF_ZAP_TRIM_STATE,
usr/src/uts/common/fs/zfs/vdev_trim.c
270
vdev_trim_change_state(vdev_t *vd, vdev_trim_state_t new_state,
usr/src/uts/common/fs/zfs/vdev_trim.c
273
ASSERT(MUTEX_HELD(&vd->vdev_trim_lock));
usr/src/uts/common/fs/zfs/vdev_trim.c
274
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev_trim.c
276
if (new_state == vd->vdev_trim_state)
usr/src/uts/common/fs/zfs/vdev_trim.c
283
*guid = vd->vdev_guid;
usr/src/uts/common/fs/zfs/vdev_trim.c
288
if (vd->vdev_trim_state != VDEV_TRIM_SUSPENDED) {
usr/src/uts/common/fs/zfs/vdev_trim.c
289
vd->vdev_trim_action_time = gethrestime_sec();
usr/src/uts/common/fs/zfs/vdev_trim.c
298
if (vd->vdev_trim_state == VDEV_TRIM_COMPLETE ||
usr/src/uts/common/fs/zfs/vdev_trim.c
299
vd->vdev_trim_state == VDEV_TRIM_CANCELED) {
usr/src/uts/common/fs/zfs/vdev_trim.c
300
vd->vdev_trim_last_offset = UINT64_MAX;
usr/src/uts/common/fs/zfs/vdev_trim.c
301
vd->vdev_trim_rate = UINT64_MAX;
usr/src/uts/common/fs/zfs/vdev_trim.c
302
vd->vdev_trim_partial = UINT64_MAX;
usr/src/uts/common/fs/zfs/vdev_trim.c
303
vd->vdev_trim_secure = UINT64_MAX;
usr/src/uts/common/fs/zfs/vdev_trim.c
307
vd->vdev_trim_rate = rate;
usr/src/uts/common/fs/zfs/vdev_trim.c
310
vd->vdev_trim_partial = partial;
usr/src/uts/common/fs/zfs/vdev_trim.c
313
vd->vdev_trim_secure = secure;
usr/src/uts/common/fs/zfs/vdev_trim.c
316
boolean_t resumed = !!(vd->vdev_trim_state == VDEV_TRIM_SUSPENDED);
usr/src/uts/common/fs/zfs/vdev_trim.c
317
vd->vdev_trim_state = new_state;
usr/src/uts/common/fs/zfs/vdev_trim.c
326
spa_event_notify(spa, vd, NULL,
usr/src/uts/common/fs/zfs/vdev_trim.c
329
"vdev=%s activated", vd->vdev_path);
usr/src/uts/common/fs/zfs/vdev_trim.c
332
spa_event_notify(spa, vd, NULL, ESC_ZFS_TRIM_SUSPEND);
usr/src/uts/common/fs/zfs/vdev_trim.c
334
"vdev=%s suspended", vd->vdev_path);
usr/src/uts/common/fs/zfs/vdev_trim.c
337
spa_event_notify(spa, vd, NULL, ESC_ZFS_TRIM_CANCEL);
usr/src/uts/common/fs/zfs/vdev_trim.c
339
"vdev=%s canceled", vd->vdev_path);
usr/src/uts/common/fs/zfs/vdev_trim.c
342
spa_event_notify(spa, vd, NULL, ESC_ZFS_TRIM_FINISH);
usr/src/uts/common/fs/zfs/vdev_trim.c
344
"vdev=%s complete", vd->vdev_path);
usr/src/uts/common/fs/zfs/vdev_trim.c
361
vdev_t *vd = zio->io_vd;
usr/src/uts/common/fs/zfs/vdev_trim.c
363
mutex_enter(&vd->vdev_trim_io_lock);
usr/src/uts/common/fs/zfs/vdev_trim.c
364
if (zio->io_error == ENXIO && !vdev_writeable(vd)) {
usr/src/uts/common/fs/zfs/vdev_trim.c
371
&vd->vdev_trim_offset[zio->io_txg & TXG_MASK];
usr/src/uts/common/fs/zfs/vdev_trim.c
375
vd->vdev_stat.vs_trim_errors++;
usr/src/uts/common/fs/zfs/vdev_trim.c
387
vd->vdev_trim_bytes_done += zio->io_orig_size;
usr/src/uts/common/fs/zfs/vdev_trim.c
390
ASSERT3U(vd->vdev_trim_inflight[TRIM_TYPE_MANUAL], >, 0);
usr/src/uts/common/fs/zfs/vdev_trim.c
391
vd->vdev_trim_inflight[TRIM_TYPE_MANUAL]--;
usr/src/uts/common/fs/zfs/vdev_trim.c
392
cv_broadcast(&vd->vdev_trim_io_cv);
usr/src/uts/common/fs/zfs/vdev_trim.c
393
mutex_exit(&vd->vdev_trim_io_lock);
usr/src/uts/common/fs/zfs/vdev_trim.c
395
spa_config_exit(vd->vdev_spa, SCL_STATE_ALL, vd);
usr/src/uts/common/fs/zfs/vdev_trim.c
407
vdev_t *vd = zio->io_vd;
usr/src/uts/common/fs/zfs/vdev_trim.c
409
mutex_enter(&vd->vdev_trim_io_lock);
usr/src/uts/common/fs/zfs/vdev_trim.c
412
vd->vdev_stat.vs_trim_errors++;
usr/src/uts/common/fs/zfs/vdev_trim.c
423
vd->vdev_autotrim_bytes_done += zio->io_orig_size;
usr/src/uts/common/fs/zfs/vdev_trim.c
426
ASSERT3U(vd->vdev_trim_inflight[TRIM_TYPE_AUTO], >, 0);
usr/src/uts/common/fs/zfs/vdev_trim.c
427
vd->vdev_trim_inflight[TRIM_TYPE_AUTO]--;
usr/src/uts/common/fs/zfs/vdev_trim.c
428
cv_broadcast(&vd->vdev_trim_io_cv);
usr/src/uts/common/fs/zfs/vdev_trim.c
429
mutex_exit(&vd->vdev_trim_io_lock);
usr/src/uts/common/fs/zfs/vdev_trim.c
431
spa_config_exit(vd->vdev_spa, SCL_STATE_ALL, vd);
usr/src/uts/common/fs/zfs/vdev_trim.c
451
vdev_t *vd = ta->trim_vdev;
usr/src/uts/common/fs/zfs/vdev_trim.c
452
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev_trim.c
454
mutex_enter(&vd->vdev_trim_io_lock);
usr/src/uts/common/fs/zfs/vdev_trim.c
461
while (vd->vdev_trim_rate != 0 && !vdev_trim_should_stop(vd) &&
usr/src/uts/common/fs/zfs/vdev_trim.c
462
vdev_trim_calculate_rate(ta) > vd->vdev_trim_rate) {
usr/src/uts/common/fs/zfs/vdev_trim.c
463
cv_timedwait_sig(&vd->vdev_trim_io_cv,
usr/src/uts/common/fs/zfs/vdev_trim.c
464
&vd->vdev_trim_io_lock, ddi_get_lbolt() +
usr/src/uts/common/fs/zfs/vdev_trim.c
471
while (vd->vdev_trim_inflight[0] + vd->vdev_trim_inflight[1] >=
usr/src/uts/common/fs/zfs/vdev_trim.c
473
cv_wait(&vd->vdev_trim_io_cv, &vd->vdev_trim_io_lock);
usr/src/uts/common/fs/zfs/vdev_trim.c
475
vd->vdev_trim_inflight[ta->trim_type]++;
usr/src/uts/common/fs/zfs/vdev_trim.c
476
mutex_exit(&vd->vdev_trim_io_lock);
usr/src/uts/common/fs/zfs/vdev_trim.c
482
spa_config_enter(spa, SCL_STATE_ALL, vd, RW_READER);
usr/src/uts/common/fs/zfs/vdev_trim.c
483
mutex_enter(&vd->vdev_trim_lock);
usr/src/uts/common/fs/zfs/vdev_trim.c
486
vd->vdev_trim_offset[txg & TXG_MASK] == 0) {
usr/src/uts/common/fs/zfs/vdev_trim.c
488
*guid = vd->vdev_guid;
usr/src/uts/common/fs/zfs/vdev_trim.c
501
vdev_trim_should_stop(vd)) ||
usr/src/uts/common/fs/zfs/vdev_trim.c
503
vdev_autotrim_should_stop(vd->vdev_top))) {
usr/src/uts/common/fs/zfs/vdev_trim.c
504
mutex_enter(&vd->vdev_trim_io_lock);
usr/src/uts/common/fs/zfs/vdev_trim.c
505
vd->vdev_trim_inflight[ta->trim_type]--;
usr/src/uts/common/fs/zfs/vdev_trim.c
506
mutex_exit(&vd->vdev_trim_io_lock);
usr/src/uts/common/fs/zfs/vdev_trim.c
507
spa_config_exit(vd->vdev_spa, SCL_STATE_ALL, vd);
usr/src/uts/common/fs/zfs/vdev_trim.c
508
mutex_exit(&vd->vdev_trim_lock);
usr/src/uts/common/fs/zfs/vdev_trim.c
512
mutex_exit(&vd->vdev_trim_lock);
usr/src/uts/common/fs/zfs/vdev_trim.c
515
vd->vdev_trim_offset[txg & TXG_MASK] = start + size;
usr/src/uts/common/fs/zfs/vdev_trim.c
517
zio_nowait(zio_trim(spa->spa_txg_zio[txg & TXG_MASK], vd,
usr/src/uts/common/fs/zfs/vdev_trim.c
537
vdev_t *vd = ta->trim_vdev;
usr/src/uts/common/fs/zfs/vdev_trim.c
542
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev_trim.c
584
mutex_enter(&vd->vdev_trim_io_lock);
usr/src/uts/common/fs/zfs/vdev_trim.c
585
while (vd->vdev_trim_inflight[TRIM_TYPE_MANUAL] > 0) {
usr/src/uts/common/fs/zfs/vdev_trim.c
586
cv_wait(&vd->vdev_trim_io_cv, &vd->vdev_trim_io_lock);
usr/src/uts/common/fs/zfs/vdev_trim.c
588
mutex_exit(&vd->vdev_trim_io_lock);
usr/src/uts/common/fs/zfs/vdev_trim.c
597
vdev_trim_calculate_progress(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev_trim.c
599
ASSERT(spa_config_held(vd->vdev_spa, SCL_CONFIG, RW_READER) ||
usr/src/uts/common/fs/zfs/vdev_trim.c
600
spa_config_held(vd->vdev_spa, SCL_CONFIG, RW_WRITER));
usr/src/uts/common/fs/zfs/vdev_trim.c
601
ASSERT(vd->vdev_leaf_zap != 0);
usr/src/uts/common/fs/zfs/vdev_trim.c
603
vd->vdev_trim_bytes_est = 0;
usr/src/uts/common/fs/zfs/vdev_trim.c
604
vd->vdev_trim_bytes_done = 0;
usr/src/uts/common/fs/zfs/vdev_trim.c
606
for (uint64_t i = 0; i < vd->vdev_top->vdev_ms_count; i++) {
usr/src/uts/common/fs/zfs/vdev_trim.c
607
metaslab_t *msp = vd->vdev_top->vdev_ms[i];
usr/src/uts/common/fs/zfs/vdev_trim.c
613
if (vd->vdev_top->vdev_ops == &vdev_raidz_ops)
usr/src/uts/common/fs/zfs/vdev_trim.c
614
ms_free /= vd->vdev_top->vdev_children;
usr/src/uts/common/fs/zfs/vdev_trim.c
624
vdev_xlate(vd, &logical_rs, &physical_rs);
usr/src/uts/common/fs/zfs/vdev_trim.c
626
if (vd->vdev_trim_last_offset <= physical_rs.rs_start) {
usr/src/uts/common/fs/zfs/vdev_trim.c
627
vd->vdev_trim_bytes_est += ms_free;
usr/src/uts/common/fs/zfs/vdev_trim.c
630
} else if (vd->vdev_trim_last_offset > physical_rs.rs_end) {
usr/src/uts/common/fs/zfs/vdev_trim.c
631
vd->vdev_trim_bytes_done += ms_free;
usr/src/uts/common/fs/zfs/vdev_trim.c
632
vd->vdev_trim_bytes_est += ms_free;
usr/src/uts/common/fs/zfs/vdev_trim.c
651
vdev_xlate(vd, &logical_rs, &physical_rs);
usr/src/uts/common/fs/zfs/vdev_trim.c
655
vd->vdev_trim_bytes_est += size;
usr/src/uts/common/fs/zfs/vdev_trim.c
656
if (vd->vdev_trim_last_offset >= physical_rs.rs_end) {
usr/src/uts/common/fs/zfs/vdev_trim.c
657
vd->vdev_trim_bytes_done += size;
usr/src/uts/common/fs/zfs/vdev_trim.c
658
} else if (vd->vdev_trim_last_offset >
usr/src/uts/common/fs/zfs/vdev_trim.c
660
vd->vdev_trim_last_offset <=
usr/src/uts/common/fs/zfs/vdev_trim.c
662
vd->vdev_trim_bytes_done +=
usr/src/uts/common/fs/zfs/vdev_trim.c
663
vd->vdev_trim_last_offset -
usr/src/uts/common/fs/zfs/vdev_trim.c
676
vdev_trim_load(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev_trim.c
679
ASSERT(spa_config_held(vd->vdev_spa, SCL_CONFIG, RW_READER) ||
usr/src/uts/common/fs/zfs/vdev_trim.c
680
spa_config_held(vd->vdev_spa, SCL_CONFIG, RW_WRITER));
usr/src/uts/common/fs/zfs/vdev_trim.c
681
ASSERT(vd->vdev_leaf_zap != 0);
usr/src/uts/common/fs/zfs/vdev_trim.c
683
if (vd->vdev_trim_state == VDEV_TRIM_ACTIVE ||
usr/src/uts/common/fs/zfs/vdev_trim.c
684
vd->vdev_trim_state == VDEV_TRIM_SUSPENDED) {
usr/src/uts/common/fs/zfs/vdev_trim.c
685
err = zap_lookup(vd->vdev_spa->spa_meta_objset,
usr/src/uts/common/fs/zfs/vdev_trim.c
686
vd->vdev_leaf_zap, VDEV_LEAF_ZAP_TRIM_LAST_OFFSET,
usr/src/uts/common/fs/zfs/vdev_trim.c
687
sizeof (vd->vdev_trim_last_offset), 1,
usr/src/uts/common/fs/zfs/vdev_trim.c
688
&vd->vdev_trim_last_offset);
usr/src/uts/common/fs/zfs/vdev_trim.c
690
vd->vdev_trim_last_offset = 0;
usr/src/uts/common/fs/zfs/vdev_trim.c
695
err = zap_lookup(vd->vdev_spa->spa_meta_objset,
usr/src/uts/common/fs/zfs/vdev_trim.c
696
vd->vdev_leaf_zap, VDEV_LEAF_ZAP_TRIM_RATE,
usr/src/uts/common/fs/zfs/vdev_trim.c
697
sizeof (vd->vdev_trim_rate), 1,
usr/src/uts/common/fs/zfs/vdev_trim.c
698
&vd->vdev_trim_rate);
usr/src/uts/common/fs/zfs/vdev_trim.c
700
vd->vdev_trim_rate = 0;
usr/src/uts/common/fs/zfs/vdev_trim.c
706
err = zap_lookup(vd->vdev_spa->spa_meta_objset,
usr/src/uts/common/fs/zfs/vdev_trim.c
707
vd->vdev_leaf_zap, VDEV_LEAF_ZAP_TRIM_PARTIAL,
usr/src/uts/common/fs/zfs/vdev_trim.c
708
sizeof (vd->vdev_trim_partial), 1,
usr/src/uts/common/fs/zfs/vdev_trim.c
709
&vd->vdev_trim_partial);
usr/src/uts/common/fs/zfs/vdev_trim.c
711
vd->vdev_trim_partial = 0;
usr/src/uts/common/fs/zfs/vdev_trim.c
717
err = zap_lookup(vd->vdev_spa->spa_meta_objset,
usr/src/uts/common/fs/zfs/vdev_trim.c
718
vd->vdev_leaf_zap, VDEV_LEAF_ZAP_TRIM_SECURE,
usr/src/uts/common/fs/zfs/vdev_trim.c
719
sizeof (vd->vdev_trim_secure), 1,
usr/src/uts/common/fs/zfs/vdev_trim.c
720
&vd->vdev_trim_secure);
usr/src/uts/common/fs/zfs/vdev_trim.c
722
vd->vdev_trim_secure = 0;
usr/src/uts/common/fs/zfs/vdev_trim.c
728
vdev_trim_calculate_progress(vd);
usr/src/uts/common/fs/zfs/vdev_trim.c
741
vdev_t *vd = ta->trim_vdev;
usr/src/uts/common/fs/zfs/vdev_trim.c
758
ASSERT(vd->vdev_ops->vdev_op_leaf);
usr/src/uts/common/fs/zfs/vdev_trim.c
759
vdev_xlate(vd, &logical_rs, &physical_rs);
usr/src/uts/common/fs/zfs/vdev_trim.c
761
IMPLY(vd->vdev_top == vd,
usr/src/uts/common/fs/zfs/vdev_trim.c
763
IMPLY(vd->vdev_top == vd,
usr/src/uts/common/fs/zfs/vdev_trim.c
773
if (physical_rs.rs_end <= vd->vdev_trim_last_offset)
usr/src/uts/common/fs/zfs/vdev_trim.c
777
if (vd->vdev_trim_last_offset > physical_rs.rs_start) {
usr/src/uts/common/fs/zfs/vdev_trim.c
779
vd->vdev_trim_last_offset);
usr/src/uts/common/fs/zfs/vdev_trim.c
780
physical_rs.rs_start = vd->vdev_trim_last_offset;
usr/src/uts/common/fs/zfs/vdev_trim.c
809
vdev_t *vd = arg;
usr/src/uts/common/fs/zfs/vdev_trim.c
810
spa_t *spa = vd->vdev_spa;
usr/src/uts/common/fs/zfs/vdev_trim.c
819
txg_wait_synced(spa_get_dsl(vd->vdev_spa), 0);
usr/src/uts/common/fs/zfs/vdev_trim.c
821
ASSERT(vdev_is_concrete(vd));
usr/src/uts/common/fs/zfs/vdev_trim.c
824
vd->vdev_trim_last_offset = 0;
usr/src/uts/common/fs/zfs/vdev_trim.c
825
vd->vdev_trim_rate = 0;
usr/src/uts/common/fs/zfs/vdev_trim.c
826
vd->vdev_trim_partial = 0;
usr/src/uts/common/fs/zfs/vdev_trim.c
827
vd->vdev_trim_secure = 0;
usr/src/uts/common/fs/zfs/vdev_trim.c
829
VERIFY0(vdev_trim_load(vd));
usr/src/uts/common/fs/zfs/vdev_trim.c
831
ta.trim_vdev = vd;
usr/src/uts/common/fs/zfs/vdev_trim.c
843
if (vd->vdev_trim_secure) {
usr/src/uts/common/fs/zfs/vdev_trim.c
849
for (uint64_t i = 0; !vd->vdev_detached &&
usr/src/uts/common/fs/zfs/vdev_trim.c
850
i < vd->vdev_top->vdev_ms_count; i++) {
usr/src/uts/common/fs/zfs/vdev_trim.c
851
metaslab_t *msp = vd->vdev_top->vdev_ms[i];
usr/src/uts/common/fs/zfs/vdev_trim.c
857
if (vd->vdev_top->vdev_ms_count != ms_count) {
usr/src/uts/common/fs/zfs/vdev_trim.c
858
vdev_trim_calculate_progress(vd);
usr/src/uts/common/fs/zfs/vdev_trim.c
859
ms_count = vd->vdev_top->vdev_ms_count;
usr/src/uts/common/fs/zfs/vdev_trim.c
871
if (msp->ms_sm == NULL && vd->vdev_trim_partial) {
usr/src/uts/common/fs/zfs/vdev_trim.c
875
vdev_trim_calculate_progress(vd);
usr/src/uts/common/fs/zfs/vdev_trim.c
897
mutex_enter(&vd->vdev_trim_lock);
usr/src/uts/common/fs/zfs/vdev_trim.c
898
if (!vd->vdev_trim_exit_wanted && vdev_writeable(vd)) {
usr/src/uts/common/fs/zfs/vdev_trim.c
899
vdev_trim_change_state(vd, VDEV_TRIM_COMPLETE,
usr/src/uts/common/fs/zfs/vdev_trim.c
900
vd->vdev_trim_rate, vd->vdev_trim_partial,
usr/src/uts/common/fs/zfs/vdev_trim.c
901
vd->vdev_trim_secure);
usr/src/uts/common/fs/zfs/vdev_trim.c
903
ASSERT(vd->vdev_trim_thread != NULL || vd->vdev_trim_inflight[0] == 0);
usr/src/uts/common/fs/zfs/vdev_trim.c
912
mutex_exit(&vd->vdev_trim_lock);
usr/src/uts/common/fs/zfs/vdev_trim.c
914
mutex_enter(&vd->vdev_trim_lock);
usr/src/uts/common/fs/zfs/vdev_trim.c
916
vd->vdev_trim_thread = NULL;
usr/src/uts/common/fs/zfs/vdev_trim.c
917
cv_broadcast(&vd->vdev_trim_cv);
usr/src/uts/common/fs/zfs/vdev_trim.c
918
mutex_exit(&vd->vdev_trim_lock);
usr/src/uts/common/fs/zfs/vdev_trim.c
926
vdev_trim(vdev_t *vd, uint64_t rate, boolean_t partial, boolean_t secure)
usr/src/uts/common/fs/zfs/vdev_trim.c
928
ASSERT(MUTEX_HELD(&vd->vdev_trim_lock));
usr/src/uts/common/fs/zfs/vdev_trim.c
929
ASSERT(vd->vdev_ops->vdev_op_leaf);
usr/src/uts/common/fs/zfs/vdev_trim.c
930
ASSERT(vdev_is_concrete(vd));
usr/src/uts/common/fs/zfs/vdev_trim.c
931
ASSERT3P(vd->vdev_trim_thread, ==, NULL);
usr/src/uts/common/fs/zfs/vdev_trim.c
932
ASSERT(!vd->vdev_detached);
usr/src/uts/common/fs/zfs/vdev_trim.c
933
ASSERT(!vd->vdev_trim_exit_wanted);
usr/src/uts/common/fs/zfs/vdev_trim.c
934
ASSERT(!vd->vdev_top->vdev_removing);
usr/src/uts/common/fs/zfs/vdev_trim.c
936
vdev_trim_change_state(vd, VDEV_TRIM_ACTIVE, rate, partial, secure);
usr/src/uts/common/fs/zfs/vdev_trim.c
937
vd->vdev_trim_thread = thread_create(NULL, 0,
usr/src/uts/common/fs/zfs/vdev_trim.c
938
vdev_trim_thread, vd, 0, &p0, TS_RUN, maxclsyspri);
usr/src/uts/common/fs/zfs/vdev_trim.c
945
vdev_trim_stop_wait_impl(vdev_t *vd)
usr/src/uts/common/fs/zfs/vdev_trim.c
947
ASSERT(MUTEX_HELD(&vd->vdev_trim_lock));
usr/src/uts/common/fs/zfs/vdev_trim.c
949
while (vd->vdev_trim_thread != NULL)
usr/src/uts/common/fs/zfs/vdev_trim.c
950
cv_wait(&vd->vdev_trim_cv, &vd->vdev_trim_lock);
usr/src/uts/common/fs/zfs/vdev_trim.c
952
ASSERT3P(vd->vdev_trim_thread, ==, NULL);
usr/src/uts/common/fs/zfs/vdev_trim.c
953
vd->vdev_trim_exit_wanted = B_FALSE;
usr/src/uts/common/fs/zfs/vdev_trim.c
962
vdev_t *vd;
usr/src/uts/common/fs/zfs/vdev_trim.c
966
while ((vd = list_remove_head(vd_list)) != NULL) {
usr/src/uts/common/fs/zfs/vdev_trim.c
967
mutex_enter(&vd->vdev_trim_lock);
usr/src/uts/common/fs/zfs/vdev_trim.c
968
vdev_trim_stop_wait_impl(vd);
usr/src/uts/common/fs/zfs/vdev_trim.c
969
mutex_exit(&vd->vdev_trim_lock);
usr/src/uts/common/fs/zfs/vdev_trim.c
983
vdev_trim_stop(vdev_t *vd, vdev_trim_state_t tgt_state, list_t *vd_list)
usr/src/uts/common/fs/zfs/vdev_trim.c
985
ASSERT(!spa_config_held(vd->vdev_spa, SCL_CONFIG|SCL_STATE, RW_WRITER));
usr/src/uts/common/fs/zfs/vdev_trim.c
986
ASSERT(MUTEX_HELD(&vd->vdev_trim_lock));
usr/src/uts/common/fs/zfs/vdev_trim.c
987
ASSERT(vd->vdev_ops->vdev_op_leaf);
usr/src/uts/common/fs/zfs/vdev_trim.c
988
ASSERT(vdev_is_concrete(vd));
usr/src/uts/common/fs/zfs/vdev_trim.c
994
if (vd->vdev_trim_thread == NULL && tgt_state != VDEV_TRIM_CANCELED)
usr/src/uts/common/fs/zfs/vdev_trim.c
997
vdev_trim_change_state(vd, tgt_state, 0, 0, 0);
usr/src/uts/common/fs/zfs/vdev_trim.c
998
vd->vdev_trim_exit_wanted = B_TRUE;
usr/src/uts/common/fs/zfs/zfs_fm.c
111
const char *subclass, spa_t *spa, vdev_t *vd, const zbookmark_phys_t *zb,
usr/src/uts/common/fs/zfs/zfs_fm.c
119
if (!zfs_ereport_is_valid(subclass, spa, vd, zio))
usr/src/uts/common/fs/zfs/zfs_fm.c
160
vd != NULL ? vd->vdev_guid : 0);
usr/src/uts/common/fs/zfs/zfs_fm.c
188
if (vd != NULL) {
usr/src/uts/common/fs/zfs/zfs_fm.c
189
vdev_t *pvd = vd->vdev_parent;
usr/src/uts/common/fs/zfs/zfs_fm.c
192
DATA_TYPE_UINT64, vd->vdev_guid,
usr/src/uts/common/fs/zfs/zfs_fm.c
194
DATA_TYPE_STRING, vd->vdev_ops->vdev_op_type, NULL);
usr/src/uts/common/fs/zfs/zfs_fm.c
195
if (vd->vdev_path != NULL)
usr/src/uts/common/fs/zfs/zfs_fm.c
198
DATA_TYPE_STRING, vd->vdev_path, NULL);
usr/src/uts/common/fs/zfs/zfs_fm.c
199
if (vd->vdev_devid != NULL)
usr/src/uts/common/fs/zfs/zfs_fm.c
202
DATA_TYPE_STRING, vd->vdev_devid, NULL);
usr/src/uts/common/fs/zfs/zfs_fm.c
203
if (vd->vdev_fru != NULL)
usr/src/uts/common/fs/zfs/zfs_fm.c
206
DATA_TYPE_STRING, vd->vdev_fru, NULL);
usr/src/uts/common/fs/zfs/zfs_fm.c
207
if (vd->vdev_ashift)
usr/src/uts/common/fs/zfs/zfs_fm.c
210
DATA_TYPE_UINT64, vd->vdev_ashift, NULL);
usr/src/uts/common/fs/zfs/zfs_fm.c
242
if (vd != NULL) {
usr/src/uts/common/fs/zfs/zfs_fm.c
256
} else if (vd != NULL) {
usr/src/uts/common/fs/zfs/zfs_fm.c
615
zfs_ereport_is_valid(const char *subclass, spa_t *spa, vdev_t *vd, zio_t *zio)
usr/src/uts/common/fs/zfs/zfs_fm.c
644
if (vd != NULL) {
usr/src/uts/common/fs/zfs/zfs_fm.c
654
if (zio->io_vd == vd && !vdev_accessible(vd, zio))
usr/src/uts/common/fs/zfs/zfs_fm.c
663
vd->vdev_ops->vdev_op_leaf &&
usr/src/uts/common/fs/zfs/zfs_fm.c
664
vdev_dtl_contains(vd, DTL_MISSING, zio->io_txg, 1))
usr/src/uts/common/fs/zfs/zfs_fm.c
673
if (vd != NULL &&
usr/src/uts/common/fs/zfs/zfs_fm.c
675
(vd->vdev_remove_wanted || vd->vdev_state == VDEV_STATE_REMOVED))
usr/src/uts/common/fs/zfs/zfs_fm.c
692
zfs_ereport_post(const char *subclass, spa_t *spa, vdev_t *vd,
usr/src/uts/common/fs/zfs/zfs_fm.c
701
if (!zfs_ereport_start(&ereport, &detector, subclass, spa, vd,
usr/src/uts/common/fs/zfs/zfs_fm.c
717
zfs_ereport_start_checksum(spa_t *spa, vdev_t *vd, const zbookmark_phys_t *zb,
usr/src/uts/common/fs/zfs/zfs_fm.c
734
report->zcr_align = 1ULL << vd->vdev_top->vdev_ashift;
usr/src/uts/common/fs/zfs/zfs_fm.c
739
FM_EREPORT_ZFS_CHECKSUM, spa, vd, zb, zio, offset, length);
usr/src/uts/common/fs/zfs/zfs_fm.c
807
zfs_ereport_post_checksum(spa_t *spa, vdev_t *vd, const zbookmark_phys_t *zb,
usr/src/uts/common/fs/zfs/zfs_fm.c
818
spa, vd, zb, zio, offset, length) || (ereport == NULL)) {
usr/src/uts/common/fs/zfs/zfs_fm.c
838
zfs_post_common(spa_t *spa, vdev_t *vd, const char *name)
usr/src/uts/common/fs/zfs/zfs_fm.c
856
if (vd)
usr/src/uts/common/fs/zfs/zfs_fm.c
858
FM_EREPORT_PAYLOAD_ZFS_VDEV_GUID, vd->vdev_guid) == 0);
usr/src/uts/common/fs/zfs/zfs_fm.c
873
zfs_post_remove(spa_t *spa, vdev_t *vd)
usr/src/uts/common/fs/zfs/zfs_fm.c
875
zfs_post_common(spa, vd, FM_RESOURCE_REMOVED);
usr/src/uts/common/fs/zfs/zfs_fm.c
884
zfs_post_autoreplace(spa_t *spa, vdev_t *vd)
usr/src/uts/common/fs/zfs/zfs_fm.c
886
zfs_post_common(spa, vd, FM_RESOURCE_AUTOREPLACE);
usr/src/uts/common/fs/zfs/zfs_fm.c
896
zfs_post_state_change(spa_t *spa, vdev_t *vd)
usr/src/uts/common/fs/zfs/zfs_fm.c
898
zfs_post_common(spa, vd, FM_RESOURCE_STATECHANGE);
usr/src/uts/common/fs/zfs/zfs_ioctl.c
5344
vdev_t *vd;
usr/src/uts/common/fs/zfs/zfs_ioctl.c
5400
vd = NULL;
usr/src/uts/common/fs/zfs/zfs_ioctl.c
5402
vd = spa_lookup_by_guid(spa, zc->zc_guid, B_TRUE);
usr/src/uts/common/fs/zfs/zfs_ioctl.c
5403
if (vd == NULL) {
usr/src/uts/common/fs/zfs/zfs_ioctl.c
5410
vdev_clear(spa, vd);
usr/src/uts/common/fs/zfs/zil.c
1231
vdev_t *vd = vdev_lookup_top(spa, zv->zv_vdev);
usr/src/uts/common/fs/zfs/zil.c
1232
if (vd != NULL)
usr/src/uts/common/fs/zfs/zil.c
1233
zio_flush(lwb->lwb_root_zio, vd);
usr/src/uts/common/fs/zfs/zil.c
891
vdev_t *vd;
usr/src/uts/common/fs/zfs/zil.c
902
vd = vdev_lookup_top(os->os_spa, DVA_GET_VDEV(&bp->blk_dva[0]));
usr/src/uts/common/fs/zfs/zil.c
903
if (vd->vdev_islog && vdev_is_dead(vd))
usr/src/uts/common/fs/zfs/zil.c
904
valid = vdev_log_state_valid(vd);
usr/src/uts/common/fs/zfs/zio.c
1130
zio_ioctl(zio_t *pio, spa_t *spa, vdev_t *vd, int cmd,
usr/src/uts/common/fs/zfs/zio.c
1136
if (vd->vdev_children == 0) {
usr/src/uts/common/fs/zfs/zio.c
1138
ZIO_TYPE_IOCTL, ZIO_PRIORITY_NOW, flags, vd, 0, NULL,
usr/src/uts/common/fs/zfs/zio.c
1145
for (c = 0; c < vd->vdev_children; c++)
usr/src/uts/common/fs/zfs/zio.c
1146
zio_nowait(zio_ioctl(zio, spa, vd->vdev_child[c], cmd,
usr/src/uts/common/fs/zfs/zio.c
1154
zio_trim(zio_t *pio, vdev_t *vd, uint64_t offset, uint64_t size,
usr/src/uts/common/fs/zfs/zio.c
1160
ASSERT0(vd->vdev_children);
usr/src/uts/common/fs/zfs/zio.c
1161
ASSERT0(P2PHASE(offset, 1ULL << vd->vdev_ashift));
usr/src/uts/common/fs/zfs/zio.c
1162
ASSERT0(P2PHASE(size, 1ULL << vd->vdev_ashift));
usr/src/uts/common/fs/zfs/zio.c
1165
zio = zio_create(pio, vd->vdev_spa, 0, NULL, NULL, size, size, done,
usr/src/uts/common/fs/zfs/zio.c
1167
vd, offset, NULL, ZIO_STAGE_OPEN, ZIO_TRIM_PIPELINE);
usr/src/uts/common/fs/zfs/zio.c
1174
zio_read_phys(zio_t *pio, vdev_t *vd, uint64_t offset, uint64_t size,
usr/src/uts/common/fs/zfs/zio.c
1180
ASSERT(vd->vdev_children == 0);
usr/src/uts/common/fs/zfs/zio.c
1182
offset >= vd->vdev_psize - VDEV_LABEL_END_SIZE);
usr/src/uts/common/fs/zfs/zio.c
1183
ASSERT3U(offset + size, <=, vd->vdev_psize);
usr/src/uts/common/fs/zfs/zio.c
1185
zio = zio_create(pio, vd->vdev_spa, 0, NULL, data, size, size, done,
usr/src/uts/common/fs/zfs/zio.c
1186
private, ZIO_TYPE_READ, priority, flags | ZIO_FLAG_PHYSICAL, vd,
usr/src/uts/common/fs/zfs/zio.c
1195
zio_write_phys(zio_t *pio, vdev_t *vd, uint64_t offset, uint64_t size,
usr/src/uts/common/fs/zfs/zio.c
1201
ASSERT(vd->vdev_children == 0);
usr/src/uts/common/fs/zfs/zio.c
1203
offset >= vd->vdev_psize - VDEV_LABEL_END_SIZE);
usr/src/uts/common/fs/zfs/zio.c
1204
ASSERT3U(offset + size, <=, vd->vdev_psize);
usr/src/uts/common/fs/zfs/zio.c
1206
zio = zio_create(pio, vd->vdev_spa, 0, NULL, data, size, size, done,
usr/src/uts/common/fs/zfs/zio.c
1207
private, ZIO_TYPE_WRITE, priority, flags | ZIO_FLAG_PHYSICAL, vd,
usr/src/uts/common/fs/zfs/zio.c
1232
zio_vdev_child_io(zio_t *pio, blkptr_t *bp, vdev_t *vd, uint64_t offset,
usr/src/uts/common/fs/zfs/zio.c
1260
if (vd->vdev_ops->vdev_op_leaf) {
usr/src/uts/common/fs/zfs/zio.c
1261
ASSERT0(vd->vdev_children);
usr/src/uts/common/fs/zfs/zio.c
1281
(vd != vd->vdev_top || (flags & ZIO_FLAG_IO_RETRY))) {
usr/src/uts/common/fs/zfs/zio.c
1294
done, private, type, priority, flags, vd, offset, &pio->io_bookmark,
usr/src/uts/common/fs/zfs/zio.c
1299
if (vd->vdev_ops->vdev_op_leaf && zio->io_logical != NULL)
usr/src/uts/common/fs/zfs/zio.c
1306
zio_vdev_delegated_io(vdev_t *vd, uint64_t offset, abd_t *data, uint64_t size,
usr/src/uts/common/fs/zfs/zio.c
1312
ASSERT(vd->vdev_ops->vdev_op_leaf);
usr/src/uts/common/fs/zfs/zio.c
1314
zio = zio_create(NULL, vd->vdev_spa, 0, NULL,
usr/src/uts/common/fs/zfs/zio.c
1317
vd, offset, NULL,
usr/src/uts/common/fs/zfs/zio.c
1324
zio_flush(zio_t *zio, vdev_t *vd)
usr/src/uts/common/fs/zfs/zio.c
1326
zio_nowait(zio_ioctl(zio, zio->io_spa, vd, DKIOCFLUSHWRITECACHE,
usr/src/uts/common/fs/zfs/zio.c
3423
vdev_t *vd = zio->io_vd;
usr/src/uts/common/fs/zfs/zio.c
3432
if (vd == NULL) {
usr/src/uts/common/fs/zfs/zio.c
3458
align = 1ULL << vd->vdev_top->vdev_ashift;
usr/src/uts/common/fs/zfs/zio.c
3465
ASSERT(vd == vd->vdev_top);
usr/src/uts/common/fs/zfs/zio.c
3525
vd->vdev_ops != &vdev_indirect_ops &&
usr/src/uts/common/fs/zfs/zio.c
3526
!vdev_dtl_contains(vd, DTL_PARTIAL, zio->io_txg, 1)) {
usr/src/uts/common/fs/zfs/zio.c
3532
if (vd->vdev_ops->vdev_op_leaf && (zio->io_type == ZIO_TYPE_READ ||
usr/src/uts/common/fs/zfs/zio.c
3541
if (!vdev_accessible(vd, zio)) {
usr/src/uts/common/fs/zfs/zio.c
3549
vd->vdev_ops->vdev_op_io_start(zio);
usr/src/uts/common/fs/zfs/zio.c
3556
vdev_t *vd = zio->io_vd;
usr/src/uts/common/fs/zfs/zio.c
3557
vdev_ops_t *ops = vd ? vd->vdev_ops : &vdev_mirror_ops;
usr/src/uts/common/fs/zfs/zio.c
3570
if (vd != NULL && vd->vdev_ops->vdev_op_leaf) {
usr/src/uts/common/fs/zfs/zio.c
3578
zio->io_error = zio_handle_device_injection(vd,
usr/src/uts/common/fs/zfs/zio.c
3585
if (!vdev_accessible(vd, zio)) {
usr/src/uts/common/fs/zfs/zio.c
3596
VERIFY(vdev_probe(vd, zio) == NULL);
usr/src/uts/common/fs/zfs/zio.c
3659
vdev_t *vd = zio->io_vd;
usr/src/uts/common/fs/zfs/zio.c
3665
if (vd == NULL && !(zio->io_flags & ZIO_FLAG_CONFIG_WRITER))
usr/src/uts/common/fs/zfs/zio.c
3682
if (zio->io_error && vd == NULL &&
usr/src/uts/common/fs/zfs/zio.c
3699
if (zio->io_error && vd != NULL && vd->vdev_ops->vdev_op_leaf &&
usr/src/uts/common/fs/zfs/zio.c
3700
!vdev_accessible(vd, zio))
usr/src/uts/common/fs/zfs/zio.c
3708
vd != NULL && !vd->vdev_ops->vdev_op_leaf) {
usr/src/uts/common/fs/zfs/zio.c
3709
vd->vdev_cant_write = B_TRUE;
usr/src/uts/common/fs/zfs/zio.c
3719
zio->io_cmd == DKIOCFLUSHWRITECACHE && vd != NULL)
usr/src/uts/common/fs/zfs/zio.c
3720
vd->vdev_nowritecache = B_TRUE;
usr/src/uts/common/fs/zfs/zio.c
3725
if (vd != NULL && vd->vdev_ops->vdev_op_leaf &&
usr/src/uts/common/fs/zfs/zio.c
4113
vdev_t *vd = zio->io_vd;
usr/src/uts/common/fs/zfs/zio.c
4120
ASSERT(vd != NULL);
usr/src/uts/common/fs/zfs/zio.c
4121
ASSERT3P(vd, ==, vd->vdev_top);
usr/src/uts/common/fs/zfs/zio.c
4152
metaslab_group_alloc_decrement(zio->io_spa, vd->vdev_id, pio, flags,
usr/src/uts/common/fs/zfs/zio.c
4173
vdev_t *vd = zio->io_vd;
usr/src/uts/common/fs/zfs/zio.c
4303
if (zio->io_error != ECKSUM && vd != NULL && !vdev_is_dead(vd))
usr/src/uts/common/fs/zfs/zio.c
4304
(void) zfs_ereport_post(FM_EREPORT_ZFS_IO, spa, vd,
usr/src/uts/common/fs/zfs/zio.c
4325
ASSERT(vd == NULL && bp != NULL);
usr/src/uts/common/fs/zfs/zio.c
696
enum zio_flag flags, vdev_t *vd, uint64_t offset,
usr/src/uts/common/fs/zfs/zio.c
705
ASSERT(!vd || spa_config_held(spa, SCL_STATE_ALL, RW_READER));
usr/src/uts/common/fs/zfs/zio.c
707
ASSERT(vd || stage == ZIO_STAGE_OPEN);
usr/src/uts/common/fs/zfs/zio.c
723
if (vd != NULL)
usr/src/uts/common/fs/zfs/zio.c
751
zio->io_vd = vd;
usr/src/uts/common/fs/zfs/zio.c
792
zio_null(zio_t *pio, spa_t *spa, vdev_t *vd, zio_done_func_t *done,
usr/src/uts/common/fs/zfs/zio.c
798
ZIO_TYPE_NULL, ZIO_PRIORITY_NOW, flags, vd, 0, NULL,
usr/src/uts/common/fs/zfs/zio.c
866
vdev_t *vd = spa->spa_root_vdev->vdev_child[vdevid];
usr/src/uts/common/fs/zfs/zio.c
867
if (vd == NULL) {
usr/src/uts/common/fs/zfs/zio.c
873
if (vd->vdev_ops == &vdev_hole_ops) {
usr/src/uts/common/fs/zfs/zio.c
879
if (vd->vdev_ops == &vdev_missing_ops) {
usr/src/uts/common/fs/zfs/zio.c
890
asize = vdev_psize_to_asize(vd, SPA_GANGBLOCKSIZE);
usr/src/uts/common/fs/zfs/zio.c
891
if (offset + asize > vd->vdev_asize) {
usr/src/uts/common/fs/zfs/zio.c
907
vdev_t *vd = spa->spa_root_vdev->vdev_child[vdevid];
usr/src/uts/common/fs/zfs/zio.c
908
if (vd == NULL)
usr/src/uts/common/fs/zfs/zio.c
911
if (vd->vdev_ops == &vdev_hole_ops)
usr/src/uts/common/fs/zfs/zio.c
914
if (vd->vdev_ops == &vdev_missing_ops) {
usr/src/uts/common/fs/zfs/zio.c
922
asize = vdev_psize_to_asize(vd, SPA_GANGBLOCKSIZE);
usr/src/uts/common/fs/zfs/zio.c
923
if (offset + asize > vd->vdev_asize)
usr/src/uts/common/fs/zfs/zio_inject.c
200
vdev_t *vd = vdev_lookup_top(zio->io_spa,
usr/src/uts/common/fs/zfs/zio_inject.c
207
if (zio->io_vd == vd && zio->io_offset == off)
usr/src/uts/common/fs/zfs/zio_inject.c
302
vdev_t *vd = zio->io_vd;
usr/src/uts/common/fs/zfs/zio_inject.c
308
offset < vd->vdev_psize - VDEV_LABEL_END_SIZE)
usr/src/uts/common/fs/zfs/zio_inject.c
326
label = vdev_label_number(vd->vdev_psize, offset);
usr/src/uts/common/fs/zfs/zio_inject.c
327
start = vdev_label_offset(vd->vdev_psize, label, start);
usr/src/uts/common/fs/zfs/zio_inject.c
328
end = vdev_label_offset(vd->vdev_psize, label, end);
usr/src/uts/common/fs/zfs/zio_inject.c
342
zio_handle_device_injection(vdev_t *vd, zio_t *zio, int error)
usr/src/uts/common/fs/zfs/zio_inject.c
355
offset >= vd->vdev_psize - VDEV_LABEL_END_SIZE)
usr/src/uts/common/fs/zfs/zio_inject.c
367
if (vd->vdev_guid == handler->zi_record.zi_guid) {
usr/src/uts/common/fs/zfs/zio_inject.c
392
vd->vdev_stat.vs_aux =
usr/src/uts/common/fs/zfs/zio_inject.c
495
vdev_t *vd = zio->io_vd;
usr/src/uts/common/fs/zfs/zio_inject.c
558
if (vd->vdev_guid != handler->zi_record.zi_guid)
usr/src/uts/common/fs/zfs/zvol.c
1119
zvol_dumpio_vdev(vdev_t *vd, void *addr, uint64_t offset, uint64_t origoffset,
usr/src/uts/common/fs/zfs/zvol.c
1122
if (doread && !vdev_readable(vd))
usr/src/uts/common/fs/zfs/zvol.c
1124
if (!doread && !vdev_writeable(vd))
usr/src/uts/common/fs/zfs/zvol.c
1126
if (vd->vdev_ops->vdev_op_dumpio == NULL)
usr/src/uts/common/fs/zfs/zvol.c
1129
return (vd->vdev_ops->vdev_op_dumpio(vd, addr, size,
usr/src/uts/common/fs/zfs/zvol.c
1137
vdev_t *vd;
usr/src/uts/common/fs/zfs/zvol.c
1162
vd = vdev_lookup_top(spa, DVA_GET_VDEV(&ze->ze_dva));
usr/src/uts/common/fs/zfs/zvol.c
1164
error = zvol_dumpio_vdev(vd, addr, offset, DVA_GET_OFFSET(&ze->ze_dva),
usr/src/uts/common/fs/zfs/zvol.c
1914
vdev_t *vd = spa->spa_root_vdev;
usr/src/uts/common/fs/zfs/zvol.c
1920
ASSERT(vd->vdev_ops == &vdev_root_ops);
usr/src/uts/common/fs/zfs/zvol.c
1939
if (vd->vdev_children > 1 || vd->vdev_ops == &vdev_raidz_ops) {
usr/src/uts/common/io/vioscsi/vioscsi.c
1004
mutex_enter(&vd->vd_lock);
usr/src/uts/common/io/vioscsi/vioscsi.c
1005
tid = vd->vd_timeout;
usr/src/uts/common/io/vioscsi/vioscsi.c
1006
vd->vd_timeout = 0;
usr/src/uts/common/io/vioscsi/vioscsi.c
1007
mutex_exit(&vd->vd_lock);
usr/src/uts/common/io/vioscsi/vioscsi.c
1014
list_remove(&sc->vs_devs, vd);
usr/src/uts/common/io/vioscsi/vioscsi.c
1017
list_destroy(&vd->vd_reqs);
usr/src/uts/common/io/vioscsi/vioscsi.c
1018
mutex_destroy(&vd->vd_lock);
usr/src/uts/common/io/vioscsi/vioscsi.c
1019
kmem_free(vd, sizeof (*vd));
usr/src/uts/common/io/vioscsi/vioscsi.c
1071
vioscsi_dev_t *vd;
usr/src/uts/common/io/vioscsi/vioscsi.c
1078
for (vd = list_head(l); vd != NULL; vd = list_next(l, vd)) {
usr/src/uts/common/io/vioscsi/vioscsi.c
1079
if (!vd->vd_rescan) {
usr/src/uts/common/io/vioscsi/vioscsi.c
1083
vd->vd_rescan = B_FALSE;
usr/src/uts/common/io/vioscsi/vioscsi.c
1084
(void) snprintf(addr, sizeof (addr), "%x", vd->vd_target);
usr/src/uts/common/io/vioscsi/vioscsi.c
1093
vioscsi_dev_t *vd;
usr/src/uts/common/io/vioscsi/vioscsi.c
1098
for (vd = list_head(l); vd != NULL; vd = list_next(l, vd)) {
usr/src/uts/common/io/vioscsi/vioscsi.c
1099
if ((vd->vd_target == target) && (vd->vd_lun == 0)) {
usr/src/uts/common/io/vioscsi/vioscsi.c
1100
vd->vd_rescan = B_TRUE;
usr/src/uts/common/io/vioscsi/vioscsi.c
185
vioscsi_dev_abort(vioscsi_dev_t *vd)
usr/src/uts/common/io/vioscsi/vioscsi.c
188
list_t *l = &vd->vd_reqs;
usr/src/uts/common/io/vioscsi/vioscsi.c
190
mutex_enter(&vd->vd_lock);
usr/src/uts/common/io/vioscsi/vioscsi.c
192
(void) vioscsi_tmf(vd->vd_sc, VIRTIO_SCSI_T_TMF_ABORT_TASK,
usr/src/uts/common/io/vioscsi/vioscsi.c
195
mutex_exit(&vd->vd_lock);
usr/src/uts/common/io/vioscsi/vioscsi.c
201
vioscsi_dev_t *vd = arg;
usr/src/uts/common/io/vioscsi/vioscsi.c
202
vioscsi_softc_t *sc = vd->vd_sc;
usr/src/uts/common/io/vioscsi/vioscsi.c
208
mutex_enter(&vd->vd_lock);
usr/src/uts/common/io/vioscsi/vioscsi.c
209
if ((tid = vd->vd_timeout) == 0) {
usr/src/uts/common/io/vioscsi/vioscsi.c
213
mutex_exit(&vd->vd_lock);
usr/src/uts/common/io/vioscsi/vioscsi.c
216
vd->vd_timeout = 0;
usr/src/uts/common/io/vioscsi/vioscsi.c
219
l = &vd->vd_reqs;
usr/src/uts/common/io/vioscsi/vioscsi.c
247
vd->vd_timeout = timeout(vioscsi_dev_timeout, vd, vioscsi_hz);
usr/src/uts/common/io/vioscsi/vioscsi.c
249
mutex_exit(&vd->vd_lock);
usr/src/uts/common/io/vioscsi/vioscsi.c
344
vioscsi_dev_t *vd = scsi_device_hba_private_get(sd);
usr/src/uts/common/io/vioscsi/vioscsi.c
363
req->vr_dev = vd;
usr/src/uts/common/io/vioscsi/vioscsi.c
365
req->vr_target = vd->vd_target;
usr/src/uts/common/io/vioscsi/vioscsi.c
366
req->vr_lun = vd->vd_lun;
usr/src/uts/common/io/vioscsi/vioscsi.c
440
mutex_enter(&vd->vd_lock);
usr/src/uts/common/io/vioscsi/vioscsi.c
441
if (vd->vd_num_cmd >= vd->vd_max_cmd) {
usr/src/uts/common/io/vioscsi/vioscsi.c
442
mutex_exit(&vd->vd_lock);
usr/src/uts/common/io/vioscsi/vioscsi.c
446
vd->vd_num_cmd++;
usr/src/uts/common/io/vioscsi/vioscsi.c
457
list_t *l = &vd->vd_reqs;
usr/src/uts/common/io/vioscsi/vioscsi.c
475
if (vd->vd_timeout == 0) {
usr/src/uts/common/io/vioscsi/vioscsi.c
476
vd->vd_timeout = timeout(vioscsi_dev_timeout, vd,
usr/src/uts/common/io/vioscsi/vioscsi.c
481
mutex_exit(&vd->vd_lock);
usr/src/uts/common/io/vioscsi/vioscsi.c
483
vioscsi_start(vd->vd_sc, req);
usr/src/uts/common/io/vioscsi/vioscsi.c
495
vioscsi_dev_t *vd;
usr/src/uts/common/io/vioscsi/vioscsi.c
500
((vd = scsi_device_hba_private_get(sd)) == NULL)) {
usr/src/uts/common/io/vioscsi/vioscsi.c
507
vioscsi_dev_abort(vd);
usr/src/uts/common/io/vioscsi/vioscsi.c
511
return (vioscsi_req_abort(vd->vd_sc, req) ? 1 : 0);
usr/src/uts/common/io/vioscsi/vioscsi.c
655
vioscsi_dev_t *vd;
usr/src/uts/common/io/vioscsi/vioscsi.c
659
((vd = scsi_device_hba_private_get(sd)) == NULL)) {
usr/src/uts/common/io/vioscsi/vioscsi.c
665
if (vioscsi_lun_reset(vd->vd_sc, vd->vd_target, vd->vd_lun)) {
usr/src/uts/common/io/vioscsi/vioscsi.c
670
if (vioscsi_target_reset(vd->vd_sc, vd->vd_target)) {
usr/src/uts/common/io/vioscsi/vioscsi.c
812
vioscsi_dev_t *vd;
usr/src/uts/common/io/vioscsi/vioscsi.c
844
if ((vd = req->vr_dev) != NULL) {
usr/src/uts/common/io/vioscsi/vioscsi.c
845
mutex_enter(&vd->vd_lock);
usr/src/uts/common/io/vioscsi/vioscsi.c
846
vd->vd_num_cmd--;
usr/src/uts/common/io/vioscsi/vioscsi.c
847
list_remove(&vd->vd_reqs, req);
usr/src/uts/common/io/vioscsi/vioscsi.c
848
mutex_exit(&vd->vd_lock);
usr/src/uts/common/io/vioscsi/vioscsi.c
958
vioscsi_dev_t *vd;
usr/src/uts/common/io/vioscsi/vioscsi.c
972
vd = kmem_zalloc(sizeof (*vd), KM_SLEEP);
usr/src/uts/common/io/vioscsi/vioscsi.c
973
list_create(&vd->vd_reqs, sizeof (vioscsi_request_t),
usr/src/uts/common/io/vioscsi/vioscsi.c
975
mutex_init(&vd->vd_lock, NULL, MUTEX_DRIVER,
usr/src/uts/common/io/vioscsi/vioscsi.c
978
vd->vd_target = (uint8_t)target;
usr/src/uts/common/io/vioscsi/vioscsi.c
979
vd->vd_lun = (uint16_t)lun;
usr/src/uts/common/io/vioscsi/vioscsi.c
980
vd->vd_sc = sc;
usr/src/uts/common/io/vioscsi/vioscsi.c
981
vd->vd_sd = sd;
usr/src/uts/common/io/vioscsi/vioscsi.c
982
vd->vd_max_cmd = sc->vs_cmd_per_lun;
usr/src/uts/common/io/vioscsi/vioscsi.c
983
vd->vd_num_cmd = 0;
usr/src/uts/common/io/vioscsi/vioscsi.c
985
scsi_device_hba_private_set(sd, vd);
usr/src/uts/common/io/vioscsi/vioscsi.c
988
list_insert_tail(&sc->vs_devs, vd);
usr/src/uts/common/io/vioscsi/vioscsi.c
998
vioscsi_dev_t *vd = scsi_device_hba_private_get(sd);
usr/src/uts/common/io/vioscsi/vioscsi.c
999
vioscsi_softc_t *sc = vd->vd_sc;
usr/src/uts/sun4v/io/vds.c
1081
vd_dskimg_set_vtoc(vd_t *vd, struct dk_label *label)
usr/src/uts/sun4v/io/vds.c
1085
ASSERT(VD_DSKIMG(vd));
usr/src/uts/sun4v/io/vds.c
1087
if (VD_DSKIMG_LABEL_WRITE(vd, label) < 0) {
usr/src/uts/sun4v/io/vds.c
1120
if (vd_dskimg_rw(vd, VD_SLICE_NONE, VD_OP_BWRITE,
usr/src/uts/sun4v/io/vds.c
1151
vd_dskimg_get_devid_block(vd_t *vd, size_t *blkp)
usr/src/uts/sun4v/io/vds.c
1155
ASSERT(VD_DSKIMG(vd));
usr/src/uts/sun4v/io/vds.c
1157
if (vd->vdisk_label == VD_DISK_LABEL_UNK) {
usr/src/uts/sun4v/io/vds.c
1165
if (vd->vdisk_label == VD_DISK_LABEL_EFI) {
usr/src/uts/sun4v/io/vds.c
1170
if (vd->efi_reserved == -1) {
usr/src/uts/sun4v/io/vds.c
1175
*blkp = vd->slices[vd->efi_reserved].start;
usr/src/uts/sun4v/io/vds.c
1179
ASSERT(vd->vdisk_label == VD_DISK_LABEL_VTOC);
usr/src/uts/sun4v/io/vds.c
1182
if (vd->dk_geom.dkg_acyl < 2) {
usr/src/uts/sun4v/io/vds.c
1184
"(acyl=%u)", vd->dk_geom.dkg_acyl);
usr/src/uts/sun4v/io/vds.c
1189
cyl = vd->dk_geom.dkg_ncyl + vd->dk_geom.dkg_acyl - 2;
usr/src/uts/sun4v/io/vds.c
1190
spc = vd->dk_geom.dkg_nhead * vd->dk_geom.dkg_nsect;
usr/src/uts/sun4v/io/vds.c
1191
head = vd->dk_geom.dkg_nhead - 1;
usr/src/uts/sun4v/io/vds.c
1193
*blkp = (cyl * (spc - vd->dk_geom.dkg_apc)) +
usr/src/uts/sun4v/io/vds.c
1194
(head * vd->dk_geom.dkg_nsect) + 1;
usr/src/uts/sun4v/io/vds.c
1234
vd_dskimg_read_devid(vd_t *vd, ddi_devid_t *devid)
usr/src/uts/sun4v/io/vds.c
1241
ASSERT(vd->vdisk_bsize == DEV_BSIZE);
usr/src/uts/sun4v/io/vds.c
1243
if ((status = vd_dskimg_get_devid_block(vd, &blk)) != 0)
usr/src/uts/sun4v/io/vds.c
1249
if ((vd_dskimg_rw(vd, VD_SLICE_NONE, VD_OP_BREAD, (caddr_t)dkdevid, blk,
usr/src/uts/sun4v/io/vds.c
1310
vd_dskimg_write_devid(vd_t *vd, ddi_devid_t devid)
usr/src/uts/sun4v/io/vds.c
1317
ASSERT(vd->vdisk_bsize == DEV_BSIZE);
usr/src/uts/sun4v/io/vds.c
1324
if ((status = vd_dskimg_get_devid_block(vd, &blk)) != 0)
usr/src/uts/sun4v/io/vds.c
1343
if ((status = vd_dskimg_rw(vd, VD_SLICE_NONE, VD_OP_BWRITE,
usr/src/uts/sun4v/io/vds.c
1376
vd_do_scsi_rdwr(vd_t *vd, int operation, caddr_t data, size_t blk, size_t len)
usr/src/uts/sun4v/io/vds.c
1384
ASSERT(!vd->file);
usr/src/uts/sun4v/io/vds.c
1385
ASSERT(!vd->volume);
usr/src/uts/sun4v/io/vds.c
1386
ASSERT(vd->vdisk_bsize > 0);
usr/src/uts/sun4v/io/vds.c
1388
max_sectors = vd->max_xfer_sz;
usr/src/uts/sun4v/io/vds.c
1389
nblk = (len / vd->vdisk_bsize);
usr/src/uts/sun4v/io/vds.c
1391
if (len % vd->vdisk_bsize != 0)
usr/src/uts/sun4v/io/vds.c
1412
if (blk < (2 << 20) && nsectors <= 0xff && !vd->is_atapi_dev) {
usr/src/uts/sun4v/io/vds.c
1429
ucmd.uscsi_buflen = nsectors * vd->backend_bsize;
usr/src/uts/sun4v/io/vds.c
1444
status = ldi_ioctl(vd->ldi_handle[VD_ENTIRE_DISK_SLICE],
usr/src/uts/sun4v/io/vds.c
1445
USCSICMD, (intptr_t)&ucmd, (vd->open_flags | FKIOCTL),
usr/src/uts/sun4v/io/vds.c
1474
data += nsectors * vd->vdisk_bsize;
usr/src/uts/sun4v/io/vds.c
1503
vd_scsi_rdwr(vd_t *vd, int operation, caddr_t data, size_t vblk, size_t vlen)
usr/src/uts/sun4v/io/vds.c
1513
if (vd->backend_bsize == 0) {
usr/src/uts/sun4v/io/vds.c
1518
if (vd_backend_check_size(vd) != 0)
usr/src/uts/sun4v/io/vds.c
1529
if (vd->vdisk_bsize == vd->backend_bsize)
usr/src/uts/sun4v/io/vds.c
1530
return (vd_do_scsi_rdwr(vd, operation, data, vblk, vlen));
usr/src/uts/sun4v/io/vds.c
1532
if (vd->vdisk_bsize > vd->backend_bsize)
usr/src/uts/sun4v/io/vds.c
1568
pblk = (vblk * vd->vdisk_bsize) / vd->backend_bsize;
usr/src/uts/sun4v/io/vds.c
1569
delta = (vblk * vd->vdisk_bsize) - (pblk * vd->backend_bsize);
usr/src/uts/sun4v/io/vds.c
1570
pnblk = ((delta + vlen - 1) / vd->backend_bsize) + 1;
usr/src/uts/sun4v/io/vds.c
1571
plen = pnblk * vd->backend_bsize;
usr/src/uts/sun4v/io/vds.c
1576
rv = vd_do_scsi_rdwr(vd, operation, (caddr_t)buf, pblk, plen);
usr/src/uts/sun4v/io/vds.c
1603
vd_slice_flabel_read(vd_t *vd, caddr_t data, size_t offset, size_t length)
usr/src/uts/sun4v/io/vds.c
1606
uint_t limit = vd->flabel_limit * vd->vdisk_bsize;
usr/src/uts/sun4v/io/vds.c
1608
ASSERT(vd->vdisk_type == VD_DISK_TYPE_SLICE);
usr/src/uts/sun4v/io/vds.c
1609
ASSERT(vd->flabel != NULL);
usr/src/uts/sun4v/io/vds.c
1616
if (offset < vd->flabel_size) {
usr/src/uts/sun4v/io/vds.c
1618
if (offset + length <= vd->flabel_size) {
usr/src/uts/sun4v/io/vds.c
1619
bcopy(vd->flabel + offset, data, length);
usr/src/uts/sun4v/io/vds.c
1623
n = vd->flabel_size - offset;
usr/src/uts/sun4v/io/vds.c
1624
bcopy(vd->flabel + offset, data, n);
usr/src/uts/sun4v/io/vds.c
1659
vd_slice_flabel_write(vd_t *vd, caddr_t data, size_t offset, size_t length)
usr/src/uts/sun4v/io/vds.c
1661
uint_t limit = vd->flabel_limit * vd->vdisk_bsize;
usr/src/uts/sun4v/io/vds.c
1666
ASSERT(vd->vdisk_type == VD_DISK_TYPE_SLICE);
usr/src/uts/sun4v/io/vds.c
1667
ASSERT(vd->flabel != NULL);
usr/src/uts/sun4v/io/vds.c
1677
if (vd->vdisk_label == VD_DISK_LABEL_VTOC &&
usr/src/uts/sun4v/io/vds.c
1678
offset == 0 && length == vd->vdisk_bsize) {
usr/src/uts/sun4v/io/vds.c
1688
if (vd_slice_geom_isvalid(vd, &geom) &&
usr/src/uts/sun4v/io/vds.c
1689
vd_slice_vtoc_isvalid(vd, &vtoc))
usr/src/uts/sun4v/io/vds.c
1745
vd_slice_fake_rdwr(vd_t *vd, int slice, int operation, caddr_t *datap,
usr/src/uts/sun4v/io/vds.c
1754
size_t bsize = vd->vdisk_bsize;
usr/src/uts/sun4v/io/vds.c
1756
ASSERT(vd->vdisk_type == VD_DISK_TYPE_SLICE);
usr/src/uts/sun4v/io/vds.c
1769
vd->vdisk_label != VD_DISK_LABEL_VTOC) &&
usr/src/uts/sun4v/io/vds.c
1771
vd->vdisk_label != VD_DISK_LABEL_EFI)) {
usr/src/uts/sun4v/io/vds.c
1780
n = vd_slice_flabel_write(vd, data, blk * bsize, length);
usr/src/uts/sun4v/io/vds.c
1782
n = vd_slice_flabel_read(vd, data, blk * bsize, length);
usr/src/uts/sun4v/io/vds.c
1800
if (vd->vdisk_label == VD_DISK_LABEL_VTOC &&
usr/src/uts/sun4v/io/vds.c
1806
if (vd->vdisk_label == VD_DISK_LABEL_EFI) {
usr/src/uts/sun4v/io/vds.c
1808
ablk = vd->vdisk_size - asize;
usr/src/uts/sun4v/io/vds.c
1810
ASSERT(vd->vdisk_label == VD_DISK_LABEL_VTOC);
usr/src/uts/sun4v/io/vds.c
1811
ASSERT(vd->dk_geom.dkg_apc == 0);
usr/src/uts/sun4v/io/vds.c
1813
csize = vd->dk_geom.dkg_nhead * vd->dk_geom.dkg_nsect;
usr/src/uts/sun4v/io/vds.c
1814
ablk = vd->dk_geom.dkg_ncyl * csize;
usr/src/uts/sun4v/io/vds.c
1815
asize = vd->dk_geom.dkg_acyl * csize;
usr/src/uts/sun4v/io/vds.c
1855
if (vd->vdisk_label == VD_DISK_LABEL_VTOC) {
usr/src/uts/sun4v/io/vds.c
1857
label = VD_LABEL_VTOC(vd);
usr/src/uts/sun4v/io/vds.c
1878
ASSERT(length == 0 || blk >= vd->flabel_limit);
usr/src/uts/sun4v/io/vds.c
1885
*blkp = blk - vd->flabel_limit;
usr/src/uts/sun4v/io/vds.c
1892
vd_flush_write(vd_t *vd)
usr/src/uts/sun4v/io/vds.c
1896
if (vd->file) {
usr/src/uts/sun4v/io/vds.c
1897
status = VOP_FSYNC(vd->file_vnode, FSYNC, kcred, NULL);
usr/src/uts/sun4v/io/vds.c
1899
status = ldi_ioctl(vd->ldi_handle[0], DKIOCFLUSHWRITECACHE,
usr/src/uts/sun4v/io/vds.c
1900
(intptr_t)NULL, vd->open_flags | FKIOCTL, kcred, &rval);
usr/src/uts/sun4v/io/vds.c
1911
vd_t *vd = task->vd;
usr/src/uts/sun4v/io/vds.c
1915
ASSERT(vd->vdisk_bsize == DEV_BSIZE);
usr/src/uts/sun4v/io/vds.c
1917
if (vd->zvol) {
usr/src/uts/sun4v/io/vds.c
1919
status = ldi_strategy(vd->ldi_handle[0], buf);
usr/src/uts/sun4v/io/vds.c
1923
ASSERT(vd->file);
usr/src/uts/sun4v/io/vds.c
1926
vd->file_vnode, buf->b_un.b_addr, buf->b_bcount,
usr/src/uts/sun4v/io/vds.c
1972
vd_t *vd = task->vd;
usr/src/uts/sun4v/io/vds.c
1981
ASSERT(vd != NULL);
usr/src/uts/sun4v/io/vds.c
1986
ASSERT(slice == VD_SLICE_NONE || slice < vd->nslices);
usr/src/uts/sun4v/io/vds.c
2004
if (request->operation == VD_OP_BWRITE && !(vd->open_flags & FWRITE)) {
usr/src/uts/sun4v/io/vds.c
2042
if (vd->vdisk_type == VD_DISK_TYPE_SLICE) {
usr/src/uts/sun4v/io/vds.c
2046
rv = vd_slice_fake_rdwr(vd, slice, request->operation,
usr/src/uts/sun4v/io/vds.c
2080
} else if (vd->volume || vd->file) {
usr/src/uts/sun4v/io/vds.c
2082
rv = vd_dskimg_io_params(vd, slice, &offset, &length);
usr/src/uts/sun4v/io/vds.c
2102
rv = vd_scsi_rdwr(vd, request->operation, bufaddr, offset,
usr/src/uts/sun4v/io/vds.c
2119
buf->b_edev = vd->dev[slice];
usr/src/uts/sun4v/io/vds.c
2123
if (vd->file || vd->zvol) {
usr/src/uts/sun4v/io/vds.c
2158
task->write_index = vd->write_index;
usr/src/uts/sun4v/io/vds.c
2159
vd->write_queue[task->write_index] = buf;
usr/src/uts/sun4v/io/vds.c
2160
vd->write_index =
usr/src/uts/sun4v/io/vds.c
2161
VD_WRITE_INDEX_NEXT(vd, vd->write_index);
usr/src/uts/sun4v/io/vds.c
2166
ASSERT(vd->ioq != NULL);
usr/src/uts/sun4v/io/vds.c
2169
(void) ddi_taskq_dispatch(task->vd->ioq, vd_bio_task, buf,
usr/src/uts/sun4v/io/vds.c
2181
buf->b_lblkno = offset << vd->vio_bshift;
usr/src/uts/sun4v/io/vds.c
2183
request->status = ldi_strategy(vd->ldi_handle[slice], buf);
usr/src/uts/sun4v/io/vds.c
219
(vd->dring + (i)*vd->descriptor_size))
usr/src/uts/sun4v/io/vds.c
222
#define VD_CLIENT(vd) \
usr/src/uts/sun4v/io/vds.c
223
(((vd)->xfer_mode == VIO_DESC_MODE) ? "in-band client" : \
usr/src/uts/sun4v/io/vds.c
224
(((vd)->xfer_mode == VIO_DRING_MODE_V1_0) ? "dring client" : \
usr/src/uts/sun4v/io/vds.c
225
(((vd)->xfer_mode == 0) ? "null client" : \
usr/src/uts/sun4v/io/vds.c
2250
vd_need_reset(vd_t *vd, boolean_t reset_ldc)
usr/src/uts/sun4v/io/vds.c
2252
mutex_enter(&vd->lock);
usr/src/uts/sun4v/io/vds.c
2253
vd->reset_state = B_TRUE;
usr/src/uts/sun4v/io/vds.c
2254
vd->reset_ldc = reset_ldc;
usr/src/uts/sun4v/io/vds.c
2255
mutex_exit(&vd->lock);
usr/src/uts/sun4v/io/vds.c
2264
vd_reset_if_needed(vd_t *vd)
usr/src/uts/sun4v/io/vds.c
2268
mutex_enter(&vd->lock);
usr/src/uts/sun4v/io/vds.c
2269
if (!vd->reset_state) {
usr/src/uts/sun4v/io/vds.c
2270
ASSERT(!vd->reset_ldc);
usr/src/uts/sun4v/io/vds.c
2271
mutex_exit(&vd->lock);
usr/src/uts/sun4v/io/vds.c
2274
mutex_exit(&vd->lock);
usr/src/uts/sun4v/io/vds.c
2276
PR0("Resetting connection state with %s", VD_CLIENT(vd));
usr/src/uts/sun4v/io/vds.c
2283
if (vd->ioq != NULL)
usr/src/uts/sun4v/io/vds.c
2284
ddi_taskq_wait(vd->ioq);
usr/src/uts/sun4v/io/vds.c
2285
ddi_taskq_wait(vd->completionq);
usr/src/uts/sun4v/io/vds.c
2287
status = vd_flush_write(vd);
usr/src/uts/sun4v/io/vds.c
229
#define VD_DSKIMG_LABEL_READ(vd, labelp) \
usr/src/uts/sun4v/io/vds.c
2292
if ((vd->initialized & VD_DRING) &&
usr/src/uts/sun4v/io/vds.c
2293
((status = ldc_mem_dring_unmap(vd->dring_handle)) != 0))
usr/src/uts/sun4v/io/vds.c
2296
vd_free_dring_task(vd);
usr/src/uts/sun4v/io/vds.c
2299
if (vd->vio_msgp != NULL) {
usr/src/uts/sun4v/io/vds.c
230
vd_dskimg_rw(vd, VD_SLICE_NONE, VD_OP_BREAD, (caddr_t)labelp, \
usr/src/uts/sun4v/io/vds.c
2300
kmem_free(vd->vio_msgp, vd->max_msglen);
usr/src/uts/sun4v/io/vds.c
2301
vd->vio_msgp = NULL;
usr/src/uts/sun4v/io/vds.c
2305
if (vd->inband_task.msg != NULL) {
usr/src/uts/sun4v/io/vds.c
2306
kmem_free(vd->inband_task.msg, vd->max_msglen);
usr/src/uts/sun4v/io/vds.c
2307
vd->inband_task.msg = NULL;
usr/src/uts/sun4v/io/vds.c
2310
mutex_enter(&vd->lock);
usr/src/uts/sun4v/io/vds.c
2312
if (vd->reset_ldc)
usr/src/uts/sun4v/io/vds.c
2314
if (vd->reset_ldc && ((status = ldc_down(vd->ldc_handle)) != 0))
usr/src/uts/sun4v/io/vds.c
2318
vd_reset_access(vd);
usr/src/uts/sun4v/io/vds.c
2320
vd->initialized &= ~(VD_SID | VD_SEQ_NUM | VD_DRING);
usr/src/uts/sun4v/io/vds.c
2321
vd->state = VD_STATE_INIT;
usr/src/uts/sun4v/io/vds.c
2322
vd->max_msglen = sizeof (vio_msg_t); /* baseline vio message size */
usr/src/uts/sun4v/io/vds.c
2325
vd->vio_msgp = kmem_alloc(vd->max_msglen, KM_SLEEP);
usr/src/uts/sun4v/io/vds.c
2328
(void) ldc_up(vd->ldc_handle);
usr/src/uts/sun4v/io/vds.c
2330
vd->reset_state = B_FALSE;
usr/src/uts/sun4v/io/vds.c
2331
vd->reset_ldc = B_FALSE;
usr/src/uts/sun4v/io/vds.c
2333
mutex_exit(&vd->lock);
usr/src/uts/sun4v/io/vds.c
2339
vd_mark_in_reset(vd_t *vd)
usr/src/uts/sun4v/io/vds.c
234
#define VD_DSKIMG_LABEL_WRITE(vd, labelp) \
usr/src/uts/sun4v/io/vds.c
2345
vd_need_reset(vd, B_FALSE);
usr/src/uts/sun4v/io/vds.c
2346
status = ddi_taskq_dispatch(vd->startq, vd_recv_msg, vd, DDI_SLEEP);
usr/src/uts/sun4v/io/vds.c
2349
vd_need_reset(vd, B_TRUE);
usr/src/uts/sun4v/io/vds.c
235
vd_dskimg_rw(vd, VD_SLICE_NONE, VD_OP_BWRITE, (caddr_t)labelp, \
usr/src/uts/sun4v/io/vds.c
2355
vd_mark_elem_done(vd_t *vd, int idx, int elem_status, int elem_nbytes)
usr/src/uts/sun4v/io/vds.c
2362
if (vd->reset_state)
usr/src/uts/sun4v/io/vds.c
2366
if ((status = VIO_DRING_ACQUIRE(&otd, vd->dring_mtype,
usr/src/uts/sun4v/io/vds.c
2367
vd->dring_handle, idx, idx)) != 0) {
usr/src/uts/sun4v/io/vds.c
2369
vd_mark_in_reset(vd);
usr/src/uts/sun4v/io/vds.c
2388
if ((status = VIO_DRING_RELEASE(vd->dring_mtype,
usr/src/uts/sun4v/io/vds.c
2389
vd->dring_handle, idx, idx)) != 0) {
usr/src/uts/sun4v/io/vds.c
239
#define VD_DSKIMG(vd) ((vd)->vdisk_type == VD_DISK_TYPE_DISK && \
usr/src/uts/sun4v/io/vds.c
2391
vd_mark_in_reset(vd);
usr/src/uts/sun4v/io/vds.c
240
((vd)->file || (vd)->volume))
usr/src/uts/sun4v/io/vds.c
2416
vd_t *vd = task->vd;
usr/src/uts/sun4v/io/vds.c
2422
ASSERT(vd != NULL);
usr/src/uts/sun4v/io/vds.c
243
#define VD_WRITE_INDEX_NEXT(vd, id) \
usr/src/uts/sun4v/io/vds.c
244
((((id) + 1) >= vd->dring_len)? 0 : (id) + 1)
usr/src/uts/sun4v/io/vds.c
2458
if (vd->write_queue[wid] != NULL) {
usr/src/uts/sun4v/io/vds.c
2460
vd->write_queue[wid] = NULL;
usr/src/uts/sun4v/io/vds.c
2461
wid = VD_WRITE_INDEX_NEXT(vd, wid);
usr/src/uts/sun4v/io/vds.c
2470
while (vd->write_queue[wid] != NULL) {
usr/src/uts/sun4v/io/vds.c
2471
(void) biowait(vd->write_queue[wid]);
usr/src/uts/sun4v/io/vds.c
2472
vd->write_queue[wid] = NULL;
usr/src/uts/sun4v/io/vds.c
2473
wid = VD_WRITE_INDEX_NEXT(vd, wid);
usr/src/uts/sun4v/io/vds.c
2481
request->status = vd_flush_write(vd);
usr/src/uts/sun4v/io/vds.c
2484
(void (*)(void *))vd_flush_write, vd,
usr/src/uts/sun4v/io/vds.c
2495
if (!vd->reset_state)
usr/src/uts/sun4v/io/vds.c
2501
vd_mark_in_reset(vd);
usr/src/uts/sun4v/io/vds.c
2512
vd_mark_in_reset(vd);
usr/src/uts/sun4v/io/vds.c
2540
ASSERT(task->vd != NULL);
usr/src/uts/sun4v/io/vds.c
2550
status = send_msg(task->vd->ldc_handle, task->msg, task->msglen);
usr/src/uts/sun4v/io/vds.c
2555
vd_mark_in_reset(task->vd);
usr/src/uts/sun4v/io/vds.c
2559
vd_need_reset(task->vd, B_TRUE);
usr/src/uts/sun4v/io/vds.c
2581
vd_t *vd = task->vd;
usr/src/uts/sun4v/io/vds.c
2585
if (!vd->reset_state && (vd->xfer_mode == VIO_DRING_MODE_V1_0)) {
usr/src/uts/sun4v/io/vds.c
2586
status = vd_mark_elem_done(vd, task->index,
usr/src/uts/sun4v/io/vds.c
2589
vd_mark_in_reset(vd);
usr/src/uts/sun4v/io/vds.c
2591
vd_need_reset(vd, B_TRUE);
usr/src/uts/sun4v/io/vds.c
2616
if (!vd->reset_state)
usr/src/uts/sun4v/io/vds.c
2964
vd_slice_geom_isvalid(vd_t *vd, struct dk_geom *geom)
usr/src/uts/sun4v/io/vds.c
2966
ASSERT(vd->vdisk_type == VD_DISK_TYPE_SLICE);
usr/src/uts/sun4v/io/vds.c
2967
ASSERT(vd->vdisk_label == VD_DISK_LABEL_VTOC);
usr/src/uts/sun4v/io/vds.c
2969
if (geom->dkg_ncyl != vd->dk_geom.dkg_ncyl ||
usr/src/uts/sun4v/io/vds.c
2970
geom->dkg_acyl != vd->dk_geom.dkg_acyl ||
usr/src/uts/sun4v/io/vds.c
2971
geom->dkg_nsect != vd->dk_geom.dkg_nsect ||
usr/src/uts/sun4v/io/vds.c
2972
geom->dkg_pcyl != vd->dk_geom.dkg_pcyl)
usr/src/uts/sun4v/io/vds.c
2984
vd_slice_vtoc_isvalid(vd_t *vd, struct extvtoc *vtoc)
usr/src/uts/sun4v/io/vds.c
2989
ASSERT(vd->vdisk_type == VD_DISK_TYPE_SLICE);
usr/src/uts/sun4v/io/vds.c
2990
ASSERT(vd->vdisk_label == VD_DISK_LABEL_VTOC);
usr/src/uts/sun4v/io/vds.c
2992
if (vtoc->v_sanity != vd->vtoc.v_sanity ||
usr/src/uts/sun4v/io/vds.c
2993
vtoc->v_version != vd->vtoc.v_version ||
usr/src/uts/sun4v/io/vds.c
2994
vtoc->v_nparts != vd->vtoc.v_nparts ||
usr/src/uts/sun4v/io/vds.c
2995
strcmp(vtoc->v_volume, vd->vtoc.v_volume) != 0 ||
usr/src/uts/sun4v/io/vds.c
2996
strcmp(vtoc->v_asciilabel, vd->vtoc.v_asciilabel) != 0)
usr/src/uts/sun4v/io/vds.c
3001
vd->vtoc.v_part[VD_ENTIRE_DISK_SLICE].p_start ||
usr/src/uts/sun4v/io/vds.c
3003
vd->vtoc.v_part[VD_ENTIRE_DISK_SLICE].p_size)
usr/src/uts/sun4v/io/vds.c
3015
csize = vd->dk_geom.dkg_nhead * vd->dk_geom.dkg_nsect;
usr/src/uts/sun4v/io/vds.c
3021
if (vd->vtoc.v_part[0].p_size >= 4 * csize &&
usr/src/uts/sun4v/io/vds.c
3022
vtoc->v_part[0].p_size < vd->vtoc.v_part[0].p_size - 4 *csize)
usr/src/uts/sun4v/io/vds.c
3045
vd_do_slice_ioctl(vd_t *vd, int cmd, void *ioctl_arg)
usr/src/uts/sun4v/io/vds.c
3052
ASSERT(vd->vdisk_type == VD_DISK_TYPE_SLICE);
usr/src/uts/sun4v/io/vds.c
3055
return (vd_flush_write(vd));
usr/src/uts/sun4v/io/vds.c
3057
switch (vd->vdisk_label) {
usr/src/uts/sun4v/io/vds.c
3066
bcopy(&vd->dk_geom, ioctl_arg, sizeof (vd->dk_geom));
usr/src/uts/sun4v/io/vds.c
3071
bcopy(&vd->vtoc, ioctl_arg, sizeof (vd->vtoc));
usr/src/uts/sun4v/io/vds.c
3081
if (!vd_slice_geom_isvalid(vd, geom))
usr/src/uts/sun4v/io/vds.c
3093
if (!vd_slice_vtoc_isvalid(vd, vtoc))
usr/src/uts/sun4v/io/vds.c
3121
len = vd_slice_flabel_read(vd,
usr/src/uts/sun4v/io/vds.c
3123
lba * vd->vdisk_bsize, len);
usr/src/uts/sun4v/io/vds.c
3145
vds_efi_alloc_and_read(vd_t *vd, efi_gpt_t **gpt, efi_gpe_t **gpe)
usr/src/uts/sun4v/io/vds.c
3150
VD_EFI_DEV_SET(edev, vd, (vd_efi_ioctl_func)vd_backend_ioctl);
usr/src/uts/sun4v/io/vds.c
3158
vds_efi_free(vd_t *vd, efi_gpt_t *gpt, efi_gpe_t *gpe)
usr/src/uts/sun4v/io/vds.c
3162
VD_EFI_DEV_SET(edev, vd, (vd_efi_ioctl_func)vd_backend_ioctl);
usr/src/uts/sun4v/io/vds.c
3168
vd_dskimg_validate_efi(vd_t *vd)
usr/src/uts/sun4v/io/vds.c
3175
if ((status = vds_efi_alloc_and_read(vd, &gpt, &gpe)) != 0)
usr/src/uts/sun4v/io/vds.c
3178
bzero(&vd->vtoc, sizeof (struct extvtoc));
usr/src/uts/sun4v/io/vds.c
3179
bzero(&vd->dk_geom, sizeof (struct dk_geom));
usr/src/uts/sun4v/io/vds.c
3180
bzero(vd->slices, sizeof (vd_slice_t) * VD_MAXPART);
usr/src/uts/sun4v/io/vds.c
3182
vd->efi_reserved = -1;
usr/src/uts/sun4v/io/vds.c
3193
vd->slices[i].start = gpe[i].efi_gpe_StartingLBA;
usr/src/uts/sun4v/io/vds.c
3194
vd->slices[i].nblocks = gpe[i].efi_gpe_EndingLBA -
usr/src/uts/sun4v/io/vds.c
3199
vd->efi_reserved = i;
usr/src/uts/sun4v/io/vds.c
3203
ASSERT(vd->vdisk_size != 0);
usr/src/uts/sun4v/io/vds.c
3204
vd->slices[VD_EFI_WD_SLICE].start = 0;
usr/src/uts/sun4v/io/vds.c
3205
vd->slices[VD_EFI_WD_SLICE].nblocks = vd->vdisk_size;
usr/src/uts/sun4v/io/vds.c
3207
vds_efi_free(vd, gpt, gpe);
usr/src/uts/sun4v/io/vds.c
3235
vd_dskimg_validate_geometry(vd_t *vd)
usr/src/uts/sun4v/io/vds.c
3238
struct dk_geom *geom = &vd->dk_geom;
usr/src/uts/sun4v/io/vds.c
3239
struct extvtoc *vtoc = &vd->vtoc;
usr/src/uts/sun4v/io/vds.c
3243
ASSERT(VD_DSKIMG(vd));
usr/src/uts/sun4v/io/vds.c
3245
if (VD_DSKIMG_LABEL_READ(vd, &label) < 0)
usr/src/uts/sun4v/io/vds.c
3254
if (vd_dskimg_validate_efi(vd) == 0) {
usr/src/uts/sun4v/io/vds.c
3255
vd->vdisk_label = VD_DISK_LABEL_EFI;
usr/src/uts/sun4v/io/vds.c
3259
vd->vdisk_label = VD_DISK_LABEL_UNK;
usr/src/uts/sun4v/io/vds.c
3260
vd_build_default_label(vd->dskimg_size, vd->vdisk_bsize,
usr/src/uts/sun4v/io/vds.c
3264
vd->vdisk_label = VD_DISK_LABEL_VTOC;
usr/src/uts/sun4v/io/vds.c
3271
bzero(vd->slices, sizeof (vd_slice_t) * VD_MAXPART);
usr/src/uts/sun4v/io/vds.c
3272
if (vd->vdisk_label != VD_DISK_LABEL_UNK) {
usr/src/uts/sun4v/io/vds.c
3274
vd->slices[i].start = vtoc->v_part[i].p_start;
usr/src/uts/sun4v/io/vds.c
3275
vd->slices[i].nblocks = vtoc->v_part[i].p_size;
usr/src/uts/sun4v/io/vds.c
3290
vd_do_dskimg_ioctl(vd_t *vd, int cmd, void *ioctl_arg)
usr/src/uts/sun4v/io/vds.c
3298
ASSERT(VD_DSKIMG(vd));
usr/src/uts/sun4v/io/vds.c
3306
rc = vd_dskimg_validate_geometry(vd);
usr/src/uts/sun4v/io/vds.c
3309
bcopy(&vd->dk_geom, geom, sizeof (struct dk_geom));
usr/src/uts/sun4v/io/vds.c
3316
rc = vd_dskimg_validate_geometry(vd);
usr/src/uts/sun4v/io/vds.c
3319
bcopy(&vd->vtoc, vtoc, sizeof (struct extvtoc));
usr/src/uts/sun4v/io/vds.c
3335
bcopy(ioctl_arg, &vd->dk_geom, sizeof (vd->dk_geom));
usr/src/uts/sun4v/io/vds.c
3340
ASSERT(vd->dk_geom.dkg_nhead != 0 &&
usr/src/uts/sun4v/io/vds.c
3341
vd->dk_geom.dkg_nsect != 0);
usr/src/uts/sun4v/io/vds.c
3349
vd_vtocgeom_to_label(vtoc, &vd->dk_geom, &label);
usr/src/uts/sun4v/io/vds.c
3352
if ((rc = vd_dskimg_set_vtoc(vd, &label)) != 0)
usr/src/uts/sun4v/io/vds.c
3358
return (vd_flush_write(vd));
usr/src/uts/sun4v/io/vds.c
3364
if (vd_dskimg_rw(vd, VD_SLICE_NONE, VD_OP_BREAD,
usr/src/uts/sun4v/io/vds.c
3374
if (vd_dskimg_rw(vd, VD_SLICE_NONE, VD_OP_BWRITE,
usr/src/uts/sun4v/io/vds.c
3388
(void) vd_dskimg_validate_geometry(vd);
usr/src/uts/sun4v/io/vds.c
3395
if (vd_dskimg_write_devid(vd, vd->dskimg_devid) != 0) {
usr/src/uts/sun4v/io/vds.c
3403
vd_backend_ioctl(vd_t *vd, int cmd, caddr_t arg)
usr/src/uts/sun4v/io/vds.c
3412
if (vd->vdisk_type == VD_DISK_TYPE_SLICE) {
usr/src/uts/sun4v/io/vds.c
3415
status = vd_do_slice_ioctl(vd, cmd, arg);
usr/src/uts/sun4v/io/vds.c
3417
} else if (VD_DSKIMG(vd)) {
usr/src/uts/sun4v/io/vds.c
3420
status = vd_do_dskimg_ioctl(vd, cmd, arg);
usr/src/uts/sun4v/io/vds.c
3425
status = ldi_ioctl(vd->ldi_handle[0], cmd, (intptr_t)arg,
usr/src/uts/sun4v/io/vds.c
3426
vd->open_flags | FKIOCTL, kcred, &rval);
usr/src/uts/sun4v/io/vds.c
3439
status = ldi_ioctl(vd->ldi_handle[0], cmd,
usr/src/uts/sun4v/io/vds.c
3440
(intptr_t)&vtoc, vd->open_flags | FKIOCTL,
usr/src/uts/sun4v/io/vds.c
3450
status = ldi_ioctl(vd->ldi_handle[0], cmd,
usr/src/uts/sun4v/io/vds.c
3451
(intptr_t)&vtoc, vd->open_flags | FKIOCTL,
usr/src/uts/sun4v/io/vds.c
3482
vd_do_ioctl(vd_t *vd, vd_dring_payload_t *request, void* buf, vd_ioctl_t *ioctl)
usr/src/uts/sun4v/io/vds.c
3488
ASSERT(request->slice < vd->nslices);
usr/src/uts/sun4v/io/vds.c
3495
if ((status = ldc_mem_copy(vd->ldc_handle, buf, 0, &nbytes,
usr/src/uts/sun4v/io/vds.c
3522
if (!(vd->open_flags & FWRITE) &&
usr/src/uts/sun4v/io/vds.c
3533
request->status = vd_backend_ioctl(vd, ioctl->cmd, ioctl->arg);
usr/src/uts/sun4v/io/vds.c
3561
if ((status = ldc_mem_copy(vd->ldc_handle, buf, 0, &nbytes,
usr/src/uts/sun4v/io/vds.c
3613
vd_t *vd = task->vd;
usr/src/uts/sun4v/io/vds.c
3658
ASSERT(vd != NULL);
usr/src/uts/sun4v/io/vds.c
3660
ASSERT(request->slice < vd->nslices);
usr/src/uts/sun4v/io/vds.c
3695
if (!(vd->open_flags & FWRITE) && ioctl[i].write) {
usr/src/uts/sun4v/io/vds.c
3704
status = vd_do_ioctl(vd, request, buf, &ioctl[i]);
usr/src/uts/sun4v/io/vds.c
3714
vd_t *vd = task->vd;
usr/src/uts/sun4v/io/vds.c
3723
if (vd->vdisk_type == VD_DISK_TYPE_SLICE) {
usr/src/uts/sun4v/io/vds.c
3736
if (VD_DSKIMG(vd)) {
usr/src/uts/sun4v/io/vds.c
3737
if (vd->dskimg_devid == NULL) {
usr/src/uts/sun4v/io/vds.c
3742
sz = ddi_devid_sizeof(vd->dskimg_devid);
usr/src/uts/sun4v/io/vds.c
3744
bcopy(vd->dskimg_devid, devid, sz);
usr/src/uts/sun4v/io/vds.c
3747
if (ddi_lyr_get_devid(vd->dev[request->slice],
usr/src/uts/sun4v/io/vds.c
3778
if ((status = ldc_mem_copy(vd->ldc_handle, (caddr_t)vd_devid, 0,
usr/src/uts/sun4v/io/vds.c
3793
vd_scsi_reset(vd_t *vd)
usr/src/uts/sun4v/io/vds.c
3801
status = ldi_ioctl(vd->ldi_handle[0], USCSICMD, (intptr_t)&uscsi,
usr/src/uts/sun4v/io/vds.c
3802
(vd->open_flags | FKIOCTL), kcred, &rval);
usr/src/uts/sun4v/io/vds.c
3810
vd_t *vd = task->vd;
usr/src/uts/sun4v/io/vds.c
3814
ASSERT(vd->scsi);
usr/src/uts/sun4v/io/vds.c
3824
request->status = vd_scsi_reset(vd);
usr/src/uts/sun4v/io/vds.c
3834
vd_t *vd = task->vd;
usr/src/uts/sun4v/io/vds.c
3855
(void) vd_backend_check_size(vd);
usr/src/uts/sun4v/io/vds.c
3856
ASSERT(vd->vdisk_size != 0);
usr/src/uts/sun4v/io/vds.c
3860
vd_cap.vdisk_block_size = vd->vdisk_bsize;
usr/src/uts/sun4v/io/vds.c
3861
vd_cap.vdisk_size = vd->vdisk_size;
usr/src/uts/sun4v/io/vds.c
3863
if ((rv = ldc_mem_copy(vd->ldc_handle, (char *)&vd_cap, 0, &nbytes,
usr/src/uts/sun4v/io/vds.c
3878
vd_t *vd = task->vd;
usr/src/uts/sun4v/io/vds.c
3882
ASSERT(vd->scsi);
usr/src/uts/sun4v/io/vds.c
3894
request->status = ldi_ioctl(vd->ldi_handle[request->slice], MHIOCSTATUS,
usr/src/uts/sun4v/io/vds.c
3895
(intptr_t)NULL, (vd->open_flags | FKIOCTL), kcred, &rval);
usr/src/uts/sun4v/io/vds.c
3902
if ((rv = ldc_mem_copy(vd->ldc_handle, (char *)&access, 0, &nbytes,
usr/src/uts/sun4v/io/vds.c
3917
vd_t *vd = task->vd;
usr/src/uts/sun4v/io/vds.c
3921
ASSERT(vd->scsi);
usr/src/uts/sun4v/io/vds.c
3931
if ((rv = ldc_mem_copy(vd->ldc_handle, (char *)&flags, 0, &nbytes,
usr/src/uts/sun4v/io/vds.c
3939
request->status = ldi_ioctl(vd->ldi_handle[request->slice],
usr/src/uts/sun4v/io/vds.c
3940
MHIOCRELEASE, (intptr_t)NULL, (vd->open_flags | FKIOCTL),
usr/src/uts/sun4v/io/vds.c
3943
vd->ownership = B_FALSE;
usr/src/uts/sun4v/io/vds.c
3966
request->status = ldi_ioctl(vd->ldi_handle[request->slice],
usr/src/uts/sun4v/io/vds.c
3967
MHIOCTKOWN, (intptr_t)NULL, (vd->open_flags | FKIOCTL),
usr/src/uts/sun4v/io/vds.c
3982
request->status = ldi_ioctl(vd->ldi_handle[request->slice],
usr/src/uts/sun4v/io/vds.c
3983
MHIOCQRESERVE, (intptr_t)NULL, (vd->open_flags | FKIOCTL),
usr/src/uts/sun4v/io/vds.c
3987
request->status = ldi_ioctl(vd->ldi_handle[request->slice],
usr/src/uts/sun4v/io/vds.c
3988
MHIOCTKOWN, (intptr_t)NULL, (vd->open_flags | FKIOCTL),
usr/src/uts/sun4v/io/vds.c
4000
request->status = ldi_ioctl(vd->ldi_handle[request->slice],
usr/src/uts/sun4v/io/vds.c
4001
MHIOCQRESERVE, (intptr_t)NULL, (vd->open_flags | FKIOCTL),
usr/src/uts/sun4v/io/vds.c
4007
(void) vd_scsi_reset(vd);
usr/src/uts/sun4v/io/vds.c
4010
request->status = ldi_ioctl(vd->ldi_handle[request->slice],
usr/src/uts/sun4v/io/vds.c
4011
MHIOCQRESERVE, (intptr_t)NULL, (vd->open_flags | FKIOCTL),
usr/src/uts/sun4v/io/vds.c
4018
request->status = ldi_ioctl(vd->ldi_handle[request->slice],
usr/src/uts/sun4v/io/vds.c
4019
MHIOCQRESERVE, (intptr_t)NULL, (vd->open_flags | FKIOCTL),
usr/src/uts/sun4v/io/vds.c
4025
vd->ownership = B_TRUE;
usr/src/uts/sun4v/io/vds.c
4033
vd_reset_access(vd_t *vd)
usr/src/uts/sun4v/io/vds.c
4037
if (vd->file || vd->volume || !vd->ownership)
usr/src/uts/sun4v/io/vds.c
4041
status = ldi_ioctl(vd->ldi_handle[0], MHIOCRELEASE, (intptr_t)NULL,
usr/src/uts/sun4v/io/vds.c
4042
(vd->open_flags | FKIOCTL), kcred, &rval);
usr/src/uts/sun4v/io/vds.c
4049
vd->ownership = B_FALSE;
usr/src/uts/sun4v/io/vds.c
4060
status = vd_scsi_reset(vd);
usr/src/uts/sun4v/io/vds.c
4066
status = ldi_ioctl(vd->ldi_handle[0], MHIOCRELEASE, (intptr_t)NULL,
usr/src/uts/sun4v/io/vds.c
4067
(vd->open_flags | FKIOCTL), kcred, &rval);
usr/src/uts/sun4v/io/vds.c
4070
vd->ownership = B_FALSE;
usr/src/uts/sun4v/io/vds.c
4087
", rebooting the system", vd->device_path);
usr/src/uts/sun4v/io/vds.c
4090
panic(VD_RESET_ACCESS_FAILURE_MSG, vd->device_path);
usr/src/uts/sun4v/io/vds.c
4093
cmn_err(CE_WARN, VD_RESET_ACCESS_FAILURE_MSG, vd->device_path);
usr/src/uts/sun4v/io/vds.c
4141
vd_t *vd = task->vd;
usr/src/uts/sun4v/io/vds.c
4144
ASSERT(vd != NULL);
usr/src/uts/sun4v/io/vds.c
4164
if ((VD_OP_SUPPORTED(vd->operations, request->operation) == B_FALSE) ||
usr/src/uts/sun4v/io/vds.c
4172
if (request->slice >= vd->nslices &&
usr/src/uts/sun4v/io/vds.c
4173
((vd->vdisk_type != VD_DISK_TYPE_DISK && vd_slice_single_slice) ||
usr/src/uts/sun4v/io/vds.c
4176
request->slice, (vd->nslices - 1));
usr/src/uts/sun4v/io/vds.c
4213
vd_t *vd = task->vd;
usr/src/uts/sun4v/io/vds.c
4235
(void) ddi_taskq_dispatch(vd->completionq, vd_complete,
usr/src/uts/sun4v/io/vds.c
4240
if (!vd->reset_state && (vd->xfer_mode == VIO_DRING_MODE_V1_0)) {
usr/src/uts/sun4v/io/vds.c
4242
status = vd_mark_elem_done(vd, task->index,
usr/src/uts/sun4v/io/vds.c
4245
vd_mark_in_reset(vd);
usr/src/uts/sun4v/io/vds.c
4247
vd_need_reset(vd, B_TRUE);
usr/src/uts/sun4v/io/vds.c
425
struct vd *vd; /* vd instance task is for */
usr/src/uts/sun4v/io/vds.c
4330
vd_process_ver_msg(vd_t *vd, vio_msg_t *msg, size_t msglen)
usr/src/uts/sun4v/io/vds.c
4375
ASSERT(!(vd->initialized & VD_SID));
usr/src/uts/sun4v/io/vds.c
4376
vd->sid = ver_msg->tag.vio_sid;
usr/src/uts/sun4v/io/vds.c
4377
vd->initialized |= VD_SID;
usr/src/uts/sun4v/io/vds.c
4384
vd->version.major = ver_msg->ver_major;
usr/src/uts/sun4v/io/vds.c
4385
vd->version.minor = ver_msg->ver_minor;
usr/src/uts/sun4v/io/vds.c
4393
vd_set_exported_operations(vd_t *vd)
usr/src/uts/sun4v/io/vds.c
4395
vd->operations = 0; /* clear field */
usr/src/uts/sun4v/io/vds.c
4402
if (vio_ver_is_supported(vd->version, 1, 1)) {
usr/src/uts/sun4v/io/vds.c
4403
ASSERT(vd->open_flags & FREAD);
usr/src/uts/sun4v/io/vds.c
4404
vd->operations |= VD_OP_MASK_READ | (1 << VD_OP_GET_CAPACITY);
usr/src/uts/sun4v/io/vds.c
4406
if (vd->open_flags & FWRITE)
usr/src/uts/sun4v/io/vds.c
4407
vd->operations |= VD_OP_MASK_WRITE;
usr/src/uts/sun4v/io/vds.c
4409
if (vd->scsi)
usr/src/uts/sun4v/io/vds.c
4410
vd->operations |= VD_OP_MASK_SCSI;
usr/src/uts/sun4v/io/vds.c
4412
if (VD_DSKIMG(vd) && vd_dskimg_is_iso_image(vd)) {
usr/src/uts/sun4v/io/vds.c
4418
vd->operations &= ~VD_OP_MASK_WRITE;
usr/src/uts/sun4v/io/vds.c
4420
} else if (vio_ver_is_supported(vd->version, 1, 0)) {
usr/src/uts/sun4v/io/vds.c
4421
vd->operations = VD_OP_MASK_READ | VD_OP_MASK_WRITE;
usr/src/uts/sun4v/io/vds.c
4425
ASSERT(vd->operations != 0);
usr/src/uts/sun4v/io/vds.c
4429
vd_process_attr_msg(vd_t *vd, vio_msg_t *msg, size_t msglen)
usr/src/uts/sun4v/io/vds.c
4465
if ((vd->initialized & VD_DISK_READY) == 0) {
usr/src/uts/sun4v/io/vds.c
4466
PR0("Retry setting up disk (%s)", vd->device_path);
usr/src/uts/sun4v/io/vds.c
4468
status = vd_setup_vd(vd);
usr/src/uts/sun4v/io/vds.c
4476
if (!vd_enabled(vd))
usr/src/uts/sun4v/io/vds.c
4484
vd->initialized |= VD_DISK_READY;
usr/src/uts/sun4v/io/vds.c
4485
ASSERT(vd->nslices > 0 && vd->nslices <= V_NUMPAR);
usr/src/uts/sun4v/io/vds.c
4487
((vd->vdisk_type == VD_DISK_TYPE_DISK) ? "disk" : "slice"),
usr/src/uts/sun4v/io/vds.c
4488
(vd->volume ? "yes" : "no"),
usr/src/uts/sun4v/io/vds.c
4489
(vd->file ? "yes" : "no"),
usr/src/uts/sun4v/io/vds.c
4490
vd->nslices);
usr/src/uts/sun4v/io/vds.c
4494
vd->xfer_mode = attr_msg->xfer_mode;
usr/src/uts/sun4v/io/vds.c
4496
if (vd->xfer_mode == VIO_DESC_MODE) {
usr/src/uts/sun4v/io/vds.c
4520
vd->max_msglen = MAX(vd->max_msglen, max_inband_msglen);
usr/src/uts/sun4v/io/vds.c
4526
vd->inband_task.vd = vd;
usr/src/uts/sun4v/io/vds.c
4527
vd->inband_task.msg = kmem_alloc(vd->max_msglen, KM_SLEEP);
usr/src/uts/sun4v/io/vds.c
4528
vd->inband_task.index = 0;
usr/src/uts/sun4v/io/vds.c
4529
vd->inband_task.type = VD_FINAL_RANGE_TASK; /* range == 1 */
usr/src/uts/sun4v/io/vds.c
4533
attr_msg->vdisk_block_size = vd->vdisk_bsize;
usr/src/uts/sun4v/io/vds.c
4534
attr_msg->max_xfer_sz = vd->max_xfer_sz;
usr/src/uts/sun4v/io/vds.c
4536
attr_msg->vdisk_size = vd->vdisk_size;
usr/src/uts/sun4v/io/vds.c
4537
attr_msg->vdisk_type = (vd_slice_single_slice)? vd->vdisk_type :
usr/src/uts/sun4v/io/vds.c
4539
attr_msg->vdisk_media = vd->vdisk_media;
usr/src/uts/sun4v/io/vds.c
4542
vd_set_exported_operations(vd);
usr/src/uts/sun4v/io/vds.c
4543
attr_msg->operations = vd->operations;
usr/src/uts/sun4v/io/vds.c
4545
PR0("%s", VD_CLIENT(vd));
usr/src/uts/sun4v/io/vds.c
4547
ASSERT(vd->dring_task == NULL);
usr/src/uts/sun4v/io/vds.c
4553
vd_process_dring_reg_msg(vd_t *vd, vio_msg_t *msg, size_t msglen)
usr/src/uts/sun4v/io/vds.c
4584
if (vd->initialized & VD_DRING) {
usr/src/uts/sun4v/io/vds.c
4618
status = ldc_mem_dring_map(vd->ldc_handle, reg_msg->cookie,
usr/src/uts/sun4v/io/vds.c
4620
reg_msg->descriptor_size, mtype, &vd->dring_handle);
usr/src/uts/sun4v/io/vds.c
4634
ldc_mem_dring_info(vd->dring_handle, &dring_minfo)) != 0) {
usr/src/uts/sun4v/io/vds.c
4636
if ((status = ldc_mem_dring_unmap(vd->dring_handle)) != 0)
usr/src/uts/sun4v/io/vds.c
4648
vd->initialized |= VD_DRING;
usr/src/uts/sun4v/io/vds.c
4649
vd->dring_ident = 1; /* "There Can Be Only One" */
usr/src/uts/sun4v/io/vds.c
4650
vd->dring = dring_minfo.vaddr;
usr/src/uts/sun4v/io/vds.c
4651
vd->descriptor_size = reg_msg->descriptor_size;
usr/src/uts/sun4v/io/vds.c
4652
vd->dring_len = reg_msg->num_descriptors;
usr/src/uts/sun4v/io/vds.c
4653
vd->dring_mtype = dring_minfo.mtype;
usr/src/uts/sun4v/io/vds.c
4654
reg_msg->dring_ident = vd->dring_ident;
usr/src/uts/sun4v/io/vds.c
4656
vd->descriptor_size, vd->dring_len);
usr/src/uts/sun4v/io/vds.c
4662
vd->dring_task =
usr/src/uts/sun4v/io/vds.c
4663
kmem_zalloc((sizeof (*vd->dring_task)) * vd->dring_len, KM_SLEEP);
usr/src/uts/sun4v/io/vds.c
4664
for (int i = 0; i < vd->dring_len; i++) {
usr/src/uts/sun4v/io/vds.c
4665
vd->dring_task[i].vd = vd;
usr/src/uts/sun4v/io/vds.c
4666
vd->dring_task[i].index = i;
usr/src/uts/sun4v/io/vds.c
4668
status = ldc_mem_alloc_handle(vd->ldc_handle,
usr/src/uts/sun4v/io/vds.c
4669
&(vd->dring_task[i].mhdl));
usr/src/uts/sun4v/io/vds.c
4680
vd->dring_task[i].request = kmem_zalloc((vd->descriptor_size -
usr/src/uts/sun4v/io/vds.c
4682
vd->dring_task[i].msg = kmem_alloc(vd->max_msglen, KM_SLEEP);
usr/src/uts/sun4v/io/vds.c
4685
if (vd->file || vd->zvol) {
usr/src/uts/sun4v/io/vds.c
4686
vd->write_queue =
usr/src/uts/sun4v/io/vds.c
4687
kmem_zalloc(sizeof (buf_t *) * vd->dring_len, KM_SLEEP);
usr/src/uts/sun4v/io/vds.c
4694
vd_process_dring_unreg_msg(vd_t *vd, vio_msg_t *msg, size_t msglen)
usr/src/uts/sun4v/io/vds.c
4713
if (unreg_msg->dring_ident != vd->dring_ident) {
usr/src/uts/sun4v/io/vds.c
4715
vd->dring_ident, unreg_msg->dring_ident);
usr/src/uts/sun4v/io/vds.c
4743
vd_check_seq_num(vd_t *vd, uint64_t seq_num)
usr/src/uts/sun4v/io/vds.c
4745
if ((vd->initialized & VD_SEQ_NUM) && (seq_num != vd->seq_num + 1)) {
usr/src/uts/sun4v/io/vds.c
4747
seq_num, (vd->seq_num + 1));
usr/src/uts/sun4v/io/vds.c
4749
vd_need_reset(vd, B_FALSE);
usr/src/uts/sun4v/io/vds.c
4753
vd->seq_num = seq_num;
usr/src/uts/sun4v/io/vds.c
4754
vd->initialized |= VD_SEQ_NUM; /* superfluous after first time... */
usr/src/uts/sun4v/io/vds.c
4775
vd_process_desc_msg(vd_t *vd, vio_msg_t *msg, size_t msglen)
usr/src/uts/sun4v/io/vds.c
4801
if (vd_check_seq_num(vd, desc_msg->hdr.seq_num) != 0)
usr/src/uts/sun4v/io/vds.c
4813
ASSERT(vd->inband_task.msg != NULL);
usr/src/uts/sun4v/io/vds.c
4815
bcopy(msg, vd->inband_task.msg, msglen);
usr/src/uts/sun4v/io/vds.c
4816
vd->inband_task.msglen = msglen;
usr/src/uts/sun4v/io/vds.c
4822
desc_msg = (vd_dring_inband_msg_t *)vd->inband_task.msg;
usr/src/uts/sun4v/io/vds.c
4823
vd->inband_task.request = &desc_msg->payload;
usr/src/uts/sun4v/io/vds.c
4825
return (vd_process_task(&vd->inband_task));
usr/src/uts/sun4v/io/vds.c
4829
vd_process_element(vd_t *vd, vd_task_type_t type, uint32_t idx,
usr/src/uts/sun4v/io/vds.c
4838
if ((status = VIO_DRING_ACQUIRE(&otd, vd->dring_mtype,
usr/src/uts/sun4v/io/vds.c
4839
vd->dring_handle, idx, idx)) != 0) {
usr/src/uts/sun4v/io/vds.c
4845
bcopy(&elem->payload, vd->dring_task[idx].request,
usr/src/uts/sun4v/io/vds.c
4846
(vd->descriptor_size - sizeof (vio_dring_entry_hdr_t)));
usr/src/uts/sun4v/io/vds.c
4851
if ((status = VIO_DRING_RELEASE(vd->dring_mtype,
usr/src/uts/sun4v/io/vds.c
4852
vd->dring_handle, idx, idx)) != 0) {
usr/src/uts/sun4v/io/vds.c
4862
vd->dring_task[idx].type = type;
usr/src/uts/sun4v/io/vds.c
4865
bcopy(msg, vd->dring_task[idx].msg, msglen);
usr/src/uts/sun4v/io/vds.c
4867
vd->dring_task[idx].msglen = msglen;
usr/src/uts/sun4v/io/vds.c
4868
return (vd_process_task(&vd->dring_task[idx]));
usr/src/uts/sun4v/io/vds.c
4872
vd_process_element_range(vd_t *vd, int start, int end,
usr/src/uts/sun4v/io/vds.c
4893
nelem = ((end < start) ? end + vd->dring_len : end) - start + 1;
usr/src/uts/sun4v/io/vds.c
4894
for (i = start, n = nelem; n > 0; i = (i + 1) % vd->dring_len, n--) {
usr/src/uts/sun4v/io/vds.c
4897
status = vd_process_element(vd, type, i, msg, msglen);
usr/src/uts/sun4v/io/vds.c
4913
if (vd->ioq != NULL)
usr/src/uts/sun4v/io/vds.c
4914
ddi_taskq_wait(vd->ioq);
usr/src/uts/sun4v/io/vds.c
4915
ddi_taskq_wait(vd->completionq);
usr/src/uts/sun4v/io/vds.c
4922
vd_process_dring_msg(vd_t *vd, vio_msg_t *msg, size_t msglen)
usr/src/uts/sun4v/io/vds.c
4941
if (vd_check_seq_num(vd, dring_msg->seq_num) != 0)
usr/src/uts/sun4v/io/vds.c
4944
if (dring_msg->dring_ident != vd->dring_ident) {
usr/src/uts/sun4v/io/vds.c
4946
vd->dring_ident, dring_msg->dring_ident);
usr/src/uts/sun4v/io/vds.c
4950
if (dring_msg->start_idx >= vd->dring_len) {
usr/src/uts/sun4v/io/vds.c
4952
dring_msg->start_idx, vd->dring_len);
usr/src/uts/sun4v/io/vds.c
4957
(dring_msg->end_idx >= vd->dring_len)) {
usr/src/uts/sun4v/io/vds.c
4959
dring_msg->end_idx, vd->dring_len);
usr/src/uts/sun4v/io/vds.c
4966
return (vd_process_element_range(vd, dring_msg->start_idx,
usr/src/uts/sun4v/io/vds.c
5000
vd_do_process_msg(vd_t *vd, vio_msg_t *msg, size_t msglen)
usr/src/uts/sun4v/io/vds.c
5015
if ((msg->tag.vio_sid != vd->sid) && (vd->initialized & VD_SID)) {
usr/src/uts/sun4v/io/vds.c
5016
PR0("Expected SID %u, received %u", vd->sid,
usr/src/uts/sun4v/io/vds.c
5021
PR1("\tWhile in state %d (%s)", vd->state, vd_decode_state(vd->state));
usr/src/uts/sun4v/io/vds.c
5026
switch (vd->state) {
usr/src/uts/sun4v/io/vds.c
5028
if ((status = vd_process_ver_msg(vd, msg, msglen)) != 0)
usr/src/uts/sun4v/io/vds.c
5032
vd->state = VD_STATE_VER;
usr/src/uts/sun4v/io/vds.c
5036
if ((status = vd_process_attr_msg(vd, msg, msglen)) != 0)
usr/src/uts/sun4v/io/vds.c
5040
vd->state = VD_STATE_ATTR;
usr/src/uts/sun4v/io/vds.c
5044
switch (vd->xfer_mode) {
usr/src/uts/sun4v/io/vds.c
5050
vd->state = VD_STATE_DATA;
usr/src/uts/sun4v/io/vds.c
5055
vd_process_dring_reg_msg(vd, msg, msglen)) != 0)
usr/src/uts/sun4v/io/vds.c
5059
vd->state = VD_STATE_DRING;
usr/src/uts/sun4v/io/vds.c
5071
vd->state = VD_STATE_DATA;
usr/src/uts/sun4v/io/vds.c
5085
vd_process_dring_reg_msg(vd, msg, msglen)) != ENOMSG)
usr/src/uts/sun4v/io/vds.c
5094
status = vd_process_dring_unreg_msg(vd, msg, msglen);
usr/src/uts/sun4v/io/vds.c
5098
switch (vd->xfer_mode) {
usr/src/uts/sun4v/io/vds.c
5100
return (vd_process_desc_msg(vd, msg, msglen));
usr/src/uts/sun4v/io/vds.c
5107
if ((status = vd_process_dring_msg(vd, msg,
usr/src/uts/sun4v/io/vds.c
5117
status = vd_process_dring_unreg_msg(vd, msg, msglen);
usr/src/uts/sun4v/io/vds.c
5134
vd_process_msg(vd_t *vd, vio_msg_t *msg, size_t msglen)
usr/src/uts/sun4v/io/vds.c
5148
vd_need_reset(vd, B_TRUE);
usr/src/uts/sun4v/io/vds.c
5155
switch (status = vd_do_process_msg(vd, msg, msglen)) {
usr/src/uts/sun4v/io/vds.c
5181
PR1("\tResulting in state %d (%s)", vd->state,
usr/src/uts/sun4v/io/vds.c
5182
vd_decode_state(vd->state));
usr/src/uts/sun4v/io/vds.c
5185
task.vd = vd;
usr/src/uts/sun4v/io/vds.c
5195
(void) ddi_taskq_dispatch(vd->completionq, vd_serial_notify,
usr/src/uts/sun4v/io/vds.c
5203
ddi_taskq_wait(vd->completionq);
usr/src/uts/sun4v/io/vds.c
5209
vd_need_reset(vd, reset_ldc);
usr/src/uts/sun4v/io/vds.c
521
#define VD_LABEL_VTOC(vd) \
usr/src/uts/sun4v/io/vds.c
5216
vd_enabled(vd_t *vd)
usr/src/uts/sun4v/io/vds.c
522
((struct dk_label *)(void *)((vd)->flabel))
usr/src/uts/sun4v/io/vds.c
5220
mutex_enter(&vd->lock);
usr/src/uts/sun4v/io/vds.c
5221
enabled = vd->enabled;
usr/src/uts/sun4v/io/vds.c
5222
mutex_exit(&vd->lock);
usr/src/uts/sun4v/io/vds.c
5229
vd_t *vd = (vd_t *)arg;
usr/src/uts/sun4v/io/vds.c
5232
ASSERT(vd != NULL);
usr/src/uts/sun4v/io/vds.c
5237
while (vd_enabled(vd) && status == 0) {
usr/src/uts/sun4v/io/vds.c
524
#define VD_LABEL_EFI_GPT(vd, lba) \
usr/src/uts/sun4v/io/vds.c
5244
vd_reset_if_needed(vd); /* can change vd->max_msglen */
usr/src/uts/sun4v/io/vds.c
5249
status = ldc_status(vd->ldc_handle, &lstatus);
usr/src/uts/sun4v/io/vds.c
525
((efi_gpt_t *)(void *)((vd)->flabel + (lba)))
usr/src/uts/sun4v/io/vds.c
5256
ASSERT(vd->max_msglen != 0);
usr/src/uts/sun4v/io/vds.c
5258
msgsize = vd->max_msglen; /* stable copy for alloc/free */
usr/src/uts/sun4v/io/vds.c
526
#define VD_LABEL_EFI_GPE(vd, lba) \
usr/src/uts/sun4v/io/vds.c
5261
status = recv_msg(vd->ldc_handle, vd->vio_msgp, &msglen);
usr/src/uts/sun4v/io/vds.c
5264
rv = vd_process_msg(vd, (void *)vd->vio_msgp, msglen);
usr/src/uts/sun4v/io/vds.c
5266
if (msgsize != vd->max_msglen) {
usr/src/uts/sun4v/io/vds.c
5268
msgsize, vd->max_msglen);
usr/src/uts/sun4v/io/vds.c
5269
kmem_free(vd->vio_msgp, msgsize);
usr/src/uts/sun4v/io/vds.c
527
((efi_gpe_t *)(void *)((vd)->flabel + 2 * (lba)))
usr/src/uts/sun4v/io/vds.c
5270
vd->vio_msgp =
usr/src/uts/sun4v/io/vds.c
5271
kmem_alloc(vd->max_msglen, KM_SLEEP);
usr/src/uts/sun4v/io/vds.c
5282
vd_need_reset(vd, B_FALSE);
usr/src/uts/sun4v/io/vds.c
5289
vd_need_reset(vd, B_TRUE);
usr/src/uts/sun4v/io/vds.c
5300
vd_t *vd = (vd_t *)(void *)arg;
usr/src/uts/sun4v/io/vds.c
5303
ASSERT(vd != NULL);
usr/src/uts/sun4v/io/vds.c
5305
if (!vd_enabled(vd))
usr/src/uts/sun4v/io/vds.c
5311
vd_need_reset(vd, B_TRUE);
usr/src/uts/sun4v/io/vds.c
5312
status = ddi_taskq_dispatch(vd->startq, vd_recv_msg, vd,
usr/src/uts/sun4v/io/vds.c
5316
vd_need_reset(vd, B_TRUE);
usr/src/uts/sun4v/io/vds.c
5323
if (vd->state != VD_STATE_INIT) {
usr/src/uts/sun4v/io/vds.c
5325
vd_need_reset(vd, B_FALSE);
usr/src/uts/sun4v/io/vds.c
5326
status = ddi_taskq_dispatch(vd->startq, vd_recv_msg,
usr/src/uts/sun4v/io/vds.c
5327
vd, DDI_SLEEP);
usr/src/uts/sun4v/io/vds.c
5330
vd_need_reset(vd, B_TRUE);
usr/src/uts/sun4v/io/vds.c
5336
(void) ldc_up(vd->ldc_handle);
usr/src/uts/sun4v/io/vds.c
5345
vd_need_reset(vd, B_FALSE);
usr/src/uts/sun4v/io/vds.c
5346
status = ddi_taskq_dispatch(vd->startq, vd_recv_msg,
usr/src/uts/sun4v/io/vds.c
5347
vd, DDI_SLEEP);
usr/src/uts/sun4v/io/vds.c
5350
vd_need_reset(vd, B_TRUE);
usr/src/uts/sun4v/io/vds.c
5360
status = ddi_taskq_dispatch(vd->startq, vd_recv_msg, vd,
usr/src/uts/sun4v/io/vds.c
5365
vd_need_reset(vd, B_TRUE);
usr/src/uts/sun4v/io/vds.c
5448
vd_dskimg_is_iso_image(vd_t *vd)
usr/src/uts/sun4v/io/vds.c
5454
ASSERT(VD_DSKIMG(vd));
usr/src/uts/sun4v/io/vds.c
5460
if (vd->vdisk_media == VD_MEDIA_DVD || vd->vdisk_media == VD_MEDIA_CD)
usr/src/uts/sun4v/io/vds.c
5469
sec = (ISO_VOLDESC_SEC * ISO_SECTOR_SIZE) / vd->vdisk_bsize;
usr/src/uts/sun4v/io/vds.c
5470
rv = vd_dskimg_rw(vd, VD_SLICE_NONE, VD_OP_BREAD, (caddr_t)iso_buf,
usr/src/uts/sun4v/io/vds.c
5498
vd_is_atapi_device(vd_t *vd)
usr/src/uts/sun4v/io/vds.c
5504
ASSERT(vd->ldi_handle[0] != NULL);
usr/src/uts/sun4v/io/vds.c
5505
ASSERT(!vd->file);
usr/src/uts/sun4v/io/vds.c
5507
rv = ldi_prop_lookup_string(vd->ldi_handle[0],
usr/src/uts/sun4v/io/vds.c
5510
PR0("'variant' property exists for %s", vd->device_path);
usr/src/uts/sun4v/io/vds.c
5516
rv = ldi_prop_exists(vd->ldi_handle[0], LDI_DEV_T_ANY, "atapi");
usr/src/uts/sun4v/io/vds.c
5518
PR0("'atapi' property exists for %s", vd->device_path);
usr/src/uts/sun4v/io/vds.c
5526
vd_setup_full_disk(vd_t *vd)
usr/src/uts/sun4v/io/vds.c
5529
major_t major = getmajor(vd->dev[0]);
usr/src/uts/sun4v/io/vds.c
5530
minor_t minor = getminor(vd->dev[0]) - VD_ENTIRE_DISK_SLICE;
usr/src/uts/sun4v/io/vds.c
5532
ASSERT(vd->vdisk_type == VD_DISK_TYPE_DISK);
usr/src/uts/sun4v/io/vds.c
5535
status = vd_backend_check_size(vd);
usr/src/uts/sun4v/io/vds.c
5538
if (!vd->scsi) {
usr/src/uts/sun4v/io/vds.c
5541
vd->device_path, status);
usr/src/uts/sun4v/io/vds.c
5550
vd->vdisk_size = VD_SIZE_UNKNOWN;
usr/src/uts/sun4v/io/vds.c
5551
vd->vdisk_bsize = 0;
usr/src/uts/sun4v/io/vds.c
5552
vd->backend_bsize = 0;
usr/src/uts/sun4v/io/vds.c
5553
vd->vdisk_media = VD_MEDIA_FIXED;
usr/src/uts/sun4v/io/vds.c
5557
vd->dev[VD_ENTIRE_DISK_SLICE] = vd->dev[0];
usr/src/uts/sun4v/io/vds.c
5558
vd->dev[0] = 0;
usr/src/uts/sun4v/io/vds.c
5559
vd->ldi_handle[VD_ENTIRE_DISK_SLICE] = vd->ldi_handle[0];
usr/src/uts/sun4v/io/vds.c
5560
vd->ldi_handle[0] = NULL;
usr/src/uts/sun4v/io/vds.c
5563
for (int slice = 0; slice < vd->nslices; slice++) {
usr/src/uts/sun4v/io/vds.c
5570
ASSERT(vd->dev[slice] == 0);
usr/src/uts/sun4v/io/vds.c
5571
ASSERT(vd->ldi_handle[slice] == NULL);
usr/src/uts/sun4v/io/vds.c
5576
vd->dev[slice] = makedevice(major, (minor + slice));
usr/src/uts/sun4v/io/vds.c
5600
status = ldi_open_by_dev(&vd->dev[slice], OTYP_BLK,
usr/src/uts/sun4v/io/vds.c
5601
vd->open_flags, kcred, &vd->ldi_handle[slice],
usr/src/uts/sun4v/io/vds.c
5602
vd->vds->ldi_ident);
usr/src/uts/sun4v/io/vds.c
5605
status = ldi_open_by_dev(&vd->dev[slice], OTYP_BLK,
usr/src/uts/sun4v/io/vds.c
5606
vd->open_flags | FNDELAY, kcred,
usr/src/uts/sun4v/io/vds.c
5607
&vd->ldi_handle[slice], vd->vds->ldi_ident);
usr/src/uts/sun4v/io/vds.c
5614
vd->ldi_handle[slice] = NULL;
usr/src/uts/sun4v/io/vds.c
5663
vd_setup_partition_vtoc(vd_t *vd)
usr/src/uts/sun4v/io/vds.c
5665
char *device_path = vd->device_path;
usr/src/uts/sun4v/io/vds.c
5670
if (vd->dk_geom.dkg_nsect == 0) {
usr/src/uts/sun4v/io/vds.c
5674
if (vd->dk_geom.dkg_nhead == 0) {
usr/src/uts/sun4v/io/vds.c
5680
csize = vd->dk_geom.dkg_nhead * vd->dk_geom.dkg_nsect;
usr/src/uts/sun4v/io/vds.c
5686
vd->dk_geom.dkg_ncyl = vd->vdisk_size / csize + 1;
usr/src/uts/sun4v/io/vds.c
5689
vd->dk_geom.dkg_acyl = 2;
usr/src/uts/sun4v/io/vds.c
5690
vd->dk_geom.dkg_pcyl = vd->dk_geom.dkg_ncyl + vd->dk_geom.dkg_acyl;
usr/src/uts/sun4v/io/vds.c
5694
bzero(vd->vtoc.v_part, sizeof (vd->vtoc.v_part));
usr/src/uts/sun4v/io/vds.c
5695
vd->vtoc.v_part[0].p_tag = V_UNASSIGNED;
usr/src/uts/sun4v/io/vds.c
5696
vd->vtoc.v_part[0].p_flag = 0;
usr/src/uts/sun4v/io/vds.c
5701
vd->vtoc.v_part[0].p_start = csize; /* start on cylinder 1 */
usr/src/uts/sun4v/io/vds.c
5702
vd->vtoc.v_part[0].p_size = (vd->vdisk_size / csize) * csize;
usr/src/uts/sun4v/io/vds.c
5705
vd->vtoc.v_nparts = 1;
usr/src/uts/sun4v/io/vds.c
5706
bcopy(VD_ASCIILABEL, vd->vtoc.v_asciilabel,
usr/src/uts/sun4v/io/vds.c
5708
sizeof (vd->vtoc.v_asciilabel)));
usr/src/uts/sun4v/io/vds.c
5709
bcopy(VD_VOLUME_NAME, vd->vtoc.v_volume,
usr/src/uts/sun4v/io/vds.c
5710
MIN(sizeof (VD_VOLUME_NAME), sizeof (vd->vtoc.v_volume)));
usr/src/uts/sun4v/io/vds.c
5713
vd->nslices = V_NUMPAR;
usr/src/uts/sun4v/io/vds.c
5714
vd->vtoc.v_nparts = V_NUMPAR;
usr/src/uts/sun4v/io/vds.c
5717
vd->vtoc.v_part[VD_ENTIRE_DISK_SLICE].p_tag = V_BACKUP;
usr/src/uts/sun4v/io/vds.c
5718
vd->vtoc.v_part[VD_ENTIRE_DISK_SLICE].p_flag = 0;
usr/src/uts/sun4v/io/vds.c
5719
vd->vtoc.v_part[VD_ENTIRE_DISK_SLICE].p_start = 0;
usr/src/uts/sun4v/io/vds.c
5720
vd->vtoc.v_part[VD_ENTIRE_DISK_SLICE].p_size =
usr/src/uts/sun4v/io/vds.c
5721
vd->dk_geom.dkg_ncyl * csize;
usr/src/uts/sun4v/io/vds.c
5723
vd_get_readable_size(vd->vdisk_size * vd->vdisk_bsize,
usr/src/uts/sun4v/io/vds.c
5731
vd->dk_geom.dkg_bcyl = 0;
usr/src/uts/sun4v/io/vds.c
5732
vd->dk_geom.dkg_intrlv = 1;
usr/src/uts/sun4v/io/vds.c
5733
vd->dk_geom.dkg_write_reinstruct = 0;
usr/src/uts/sun4v/io/vds.c
5734
vd->dk_geom.dkg_read_reinstruct = 0;
usr/src/uts/sun4v/io/vds.c
5740
(void) snprintf(vd->vtoc.v_asciilabel, LEN_DKL_ASCII,
usr/src/uts/sun4v/io/vds.c
5743
vd->dk_geom.dkg_ncyl, vd->dk_geom.dkg_acyl,
usr/src/uts/sun4v/io/vds.c
5744
vd->dk_geom.dkg_nhead, vd->dk_geom.dkg_nsect);
usr/src/uts/sun4v/io/vds.c
5745
bzero(vd->vtoc.v_volume, sizeof (vd->vtoc.v_volume));
usr/src/uts/sun4v/io/vds.c
5748
vd->flabel_limit = (uint_t)csize;
usr/src/uts/sun4v/io/vds.c
5749
vd->flabel_size = VD_LABEL_VTOC_SIZE(vd->vdisk_bsize);
usr/src/uts/sun4v/io/vds.c
5750
vd->flabel = kmem_zalloc(vd->flabel_size, KM_SLEEP);
usr/src/uts/sun4v/io/vds.c
5751
vd_vtocgeom_to_label(&vd->vtoc, &vd->dk_geom,
usr/src/uts/sun4v/io/vds.c
5752
VD_LABEL_VTOC(vd));
usr/src/uts/sun4v/io/vds.c
5756
vd->vdisk_size += csize * 3;
usr/src/uts/sun4v/io/vds.c
5806
vd_setup_partition_efi(vd_t *vd)
usr/src/uts/sun4v/io/vds.c
5816
ASSERT(vd->vdisk_bsize > 0);
usr/src/uts/sun4v/io/vds.c
5818
bsize = vd->vdisk_bsize;
usr/src/uts/sun4v/io/vds.c
5824
vd->flabel_limit = (uint_t)first_u_lba;
usr/src/uts/sun4v/io/vds.c
5825
vd->flabel_size = VD_LABEL_EFI_SIZE(bsize);
usr/src/uts/sun4v/io/vds.c
5826
vd->flabel = kmem_zalloc(vd->flabel_size, KM_SLEEP);
usr/src/uts/sun4v/io/vds.c
5827
gpt = VD_LABEL_EFI_GPT(vd, bsize);
usr/src/uts/sun4v/io/vds.c
5828
gpe = VD_LABEL_EFI_GPE(vd, bsize);
usr/src/uts/sun4v/io/vds.c
5834
vd->vdisk_size += first_u_lba;
usr/src/uts/sun4v/io/vds.c
5836
s0_end = vd->vdisk_size - 1;
usr/src/uts/sun4v/io/vds.c
5854
vd->nslices = V_NUMPAR;
usr/src/uts/sun4v/io/vds.c
5865
vd->vdisk_size += EFI_MIN_RESV_SIZE;
usr/src/uts/sun4v/io/vds.c
5868
gpt->efi_gpt_LastUsableLBA = LE_64(vd->vdisk_size - 1);
usr/src/uts/sun4v/io/vds.c
5871
vd->vdisk_size += (EFI_MIN_ARRAY_SIZE / bsize) + 1;
usr/src/uts/sun4v/io/vds.c
5872
gpt->efi_gpt_AlternateLBA = LE_64(vd->vdisk_size - 1);
usr/src/uts/sun4v/io/vds.c
5889
vd_setup_backend_vnode(vd_t *vd)
usr/src/uts/sun4v/io/vds.c
5893
char *file_path = vd->device_path;
usr/src/uts/sun4v/io/vds.c
5897
ASSERT(!vd->volume);
usr/src/uts/sun4v/io/vds.c
5899
if ((status = vn_open(file_path, UIO_SYSSPACE, vd->open_flags | FOFFMAX,
usr/src/uts/sun4v/io/vds.c
5900
0, &vd->file_vnode, 0, 0)) != 0) {
usr/src/uts/sun4v/io/vds.c
5902
status == EROFS) && (!(vd->initialized & VD_SETUP_ERROR) &&
usr/src/uts/sun4v/io/vds.c
5903
!(DEVI_IS_ATTACHING(vd->vds->dip)))) {
usr/src/uts/sun4v/io/vds.c
5913
vd->file = B_TRUE;
usr/src/uts/sun4v/io/vds.c
5915
vd->max_xfer_sz = maxphys / DEV_BSIZE; /* default transfer size */
usr/src/uts/sun4v/io/vds.c
5920
dev = vd->file_vnode->v_vfsp->vfs_dev;
usr/src/uts/sun4v/io/vds.c
5925
vd->vds->ldi_ident);
usr/src/uts/sun4v/io/vds.c
5932
(intptr_t)&dk_cinfo, (vd->open_flags | FKIOCTL), kcred,
usr/src/uts/sun4v/io/vds.c
5941
vd->max_xfer_sz = dk_cinfo.dki_maxtransfer;
usr/src/uts/sun4v/io/vds.c
5949
file_path, getmajor(dev), getminor(dev), vd->max_xfer_sz);
usr/src/uts/sun4v/io/vds.c
5951
if (vd->vdisk_type == VD_DISK_TYPE_SLICE)
usr/src/uts/sun4v/io/vds.c
5952
status = vd_setup_slice_image(vd);
usr/src/uts/sun4v/io/vds.c
5954
status = vd_setup_disk_image(vd);
usr/src/uts/sun4v/io/vds.c
5960
vd_setup_slice_image(vd_t *vd)
usr/src/uts/sun4v/io/vds.c
5965
if ((status = vd_backend_check_size(vd)) != 0) {
usr/src/uts/sun4v/io/vds.c
5967
vd->device_path, status);
usr/src/uts/sun4v/io/vds.c
5971
vd->vdisk_media = VD_MEDIA_FIXED;
usr/src/uts/sun4v/io/vds.c
5972
vd->vdisk_label = (vd_slice_label == VD_DISK_LABEL_UNK)?
usr/src/uts/sun4v/io/vds.c
5975
if (vd->vdisk_label == VD_DISK_LABEL_EFI ||
usr/src/uts/sun4v/io/vds.c
5976
vd->dskimg_size >= 2 * ONE_TERABYTE) {
usr/src/uts/sun4v/io/vds.c
5977
status = vd_setup_partition_efi(vd);
usr/src/uts/sun4v/io/vds.c
5985
vd_build_default_label(vd->dskimg_size, vd->vdisk_bsize,
usr/src/uts/sun4v/io/vds.c
5987
vd_label_to_vtocgeom(&label, &vd->vtoc, &vd->dk_geom);
usr/src/uts/sun4v/io/vds.c
5988
status = vd_setup_partition_vtoc(vd);
usr/src/uts/sun4v/io/vds.c
5995
vd_setup_disk_image(vd_t *vd)
usr/src/uts/sun4v/io/vds.c
5998
char *backend_path = vd->device_path;
usr/src/uts/sun4v/io/vds.c
6000
if ((status = vd_backend_check_size(vd)) != 0) {
usr/src/uts/sun4v/io/vds.c
6007
if (vd->dskimg_size < sizeof (struct dk_label)) {
usr/src/uts/sun4v/io/vds.c
6016
status = vd_dskimg_validate_geometry(vd);
usr/src/uts/sun4v/io/vds.c
6022
if (vd_dskimg_is_iso_image(vd)) {
usr/src/uts/sun4v/io/vds.c
6028
if ((vd->vdisk_size * vd->vdisk_bsize) > ONE_GIGABYTE)
usr/src/uts/sun4v/io/vds.c
6029
vd->vdisk_media = VD_MEDIA_DVD;
usr/src/uts/sun4v/io/vds.c
6031
vd->vdisk_media = VD_MEDIA_CD;
usr/src/uts/sun4v/io/vds.c
6033
vd->vdisk_media = VD_MEDIA_FIXED;
usr/src/uts/sun4v/io/vds.c
6038
if (vd->vdisk_label != VD_DISK_LABEL_UNK) {
usr/src/uts/sun4v/io/vds.c
6040
status = vd_dskimg_read_devid(vd, &vd->dskimg_devid);
usr/src/uts/sun4v/io/vds.c
6054
vd->dskimg_devid = NULL;
usr/src/uts/sun4v/io/vds.c
6066
if (ddi_devid_init(vd->vds->dip, DEVID_FAB, 0, 0,
usr/src/uts/sun4v/io/vds.c
6067
&vd->dskimg_devid) != DDI_SUCCESS) {
usr/src/uts/sun4v/io/vds.c
6069
vd->dskimg_devid = NULL;
usr/src/uts/sun4v/io/vds.c
6078
if (vd->vdisk_label != VD_DISK_LABEL_UNK) {
usr/src/uts/sun4v/io/vds.c
6079
if (vd_dskimg_write_devid(vd, vd->dskimg_devid) != 0) {
usr/src/uts/sun4v/io/vds.c
6081
ddi_devid_free(vd->dskimg_devid);
usr/src/uts/sun4v/io/vds.c
6082
vd->dskimg_devid = NULL;
usr/src/uts/sun4v/io/vds.c
6103
vd_open_using_ldi_by_name(vd_t *vd, int flags)
usr/src/uts/sun4v/io/vds.c
6106
char *device_path = vd->device_path;
usr/src/uts/sun4v/io/vds.c
6110
&vd->ldi_handle[0], vd->vds->ldi_ident);
usr/src/uts/sun4v/io/vds.c
6119
kcred, &vd->ldi_handle[0], vd->vds->ldi_ident);
usr/src/uts/sun4v/io/vds.c
6123
vd->ldi_handle[0] = NULL;
usr/src/uts/sun4v/io/vds.c
6136
vd_setup_backend_ldi(vd_t *vd)
usr/src/uts/sun4v/io/vds.c
6140
char *device_path = vd->device_path;
usr/src/uts/sun4v/io/vds.c
6143
ASSERT(vd->ldi_handle[0] != NULL);
usr/src/uts/sun4v/io/vds.c
6144
ASSERT(vd->dev[0] != NULL);
usr/src/uts/sun4v/io/vds.c
6146
vd->file = B_FALSE;
usr/src/uts/sun4v/io/vds.c
6149
if ((status = ldi_ioctl(vd->ldi_handle[0], DKIOCINFO,
usr/src/uts/sun4v/io/vds.c
6150
(intptr_t)&dk_cinfo, (vd->open_flags | FKIOCTL), kcred,
usr/src/uts/sun4v/io/vds.c
6174
vd->open_flags &= ~FWRITE;
usr/src/uts/sun4v/io/vds.c
6176
} else if (vd->open_flags & FWRITE) {
usr/src/uts/sun4v/io/vds.c
6178
(void) ldi_close(vd->ldi_handle[0], vd->open_flags & ~FWRITE,
usr/src/uts/sun4v/io/vds.c
6180
status = vd_open_using_ldi_by_name(vd, vd->open_flags);
usr/src/uts/sun4v/io/vds.c
6189
vd->max_xfer_sz = dk_cinfo.dki_maxtransfer;
usr/src/uts/sun4v/io/vds.c
6195
vd->is_atapi_dev = vd_is_atapi_device(vd);
usr/src/uts/sun4v/io/vds.c
6207
if (vd->vdisk_type == VD_DISK_TYPE_DISK) {
usr/src/uts/sun4v/io/vds.c
6209
if (vd->volume) {
usr/src/uts/sun4v/io/vds.c
6211
return (vd_setup_disk_image(vd));
usr/src/uts/sun4v/io/vds.c
6216
ASSERT(!vd->volume);
usr/src/uts/sun4v/io/vds.c
6218
vd->scsi = B_TRUE;
usr/src/uts/sun4v/io/vds.c
6219
return (vd_setup_full_disk(vd));
usr/src/uts/sun4v/io/vds.c
6232
return (vd_setup_single_slice_disk(vd));
usr/src/uts/sun4v/io/vds.c
6236
vd_setup_single_slice_disk(vd_t *vd)
usr/src/uts/sun4v/io/vds.c
6240
char *device_path = vd->device_path;
usr/src/uts/sun4v/io/vds.c
6243
vd->vdisk_media = VD_MEDIA_FIXED;
usr/src/uts/sun4v/io/vds.c
6245
if (vd->volume) {
usr/src/uts/sun4v/io/vds.c
6246
ASSERT(vd->vdisk_type == VD_DISK_TYPE_SLICE);
usr/src/uts/sun4v/io/vds.c
6253
vd->vdisk_type = VD_DISK_TYPE_SLICE;
usr/src/uts/sun4v/io/vds.c
6254
vd->nslices = 1;
usr/src/uts/sun4v/io/vds.c
6257
if ((status = vd_backend_check_size(vd)) != 0) {
usr/src/uts/sun4v/io/vds.c
6272
vd->vdisk_size >= ONE_TERABYTE / vd->vdisk_bsize) {
usr/src/uts/sun4v/io/vds.c
6273
vd->vdisk_label = VD_DISK_LABEL_EFI;
usr/src/uts/sun4v/io/vds.c
6275
status = ldi_ioctl(vd->ldi_handle[0], DKIOCGEXTVTOC,
usr/src/uts/sun4v/io/vds.c
6276
(intptr_t)&vd->vtoc, (vd->open_flags | FKIOCTL),
usr/src/uts/sun4v/io/vds.c
6281
status = ldi_ioctl(vd->ldi_handle[0], DKIOCGVTOC,
usr/src/uts/sun4v/io/vds.c
6282
(intptr_t)&vtoc, (vd->open_flags | FKIOCTL),
usr/src/uts/sun4v/io/vds.c
6284
vtoctoextvtoc(vtoc, vd->vtoc);
usr/src/uts/sun4v/io/vds.c
6288
status = ldi_ioctl(vd->ldi_handle[0], DKIOCGGEOM,
usr/src/uts/sun4v/io/vds.c
6289
(intptr_t)&vd->dk_geom, (vd->open_flags | FKIOCTL),
usr/src/uts/sun4v/io/vds.c
6297
vd->vdisk_label = VD_DISK_LABEL_VTOC;
usr/src/uts/sun4v/io/vds.c
6301
vd->vdisk_label = VD_DISK_LABEL_VTOC;
usr/src/uts/sun4v/io/vds.c
6302
vd_build_default_label(vd->vdisk_size * vd->vdisk_bsize,
usr/src/uts/sun4v/io/vds.c
6303
vd->vdisk_bsize, &label);
usr/src/uts/sun4v/io/vds.c
6304
vd_label_to_vtocgeom(&label, &vd->vtoc, &vd->dk_geom);
usr/src/uts/sun4v/io/vds.c
6307
vd->vdisk_label = VD_DISK_LABEL_EFI;
usr/src/uts/sun4v/io/vds.c
6311
if (vd->vdisk_label == VD_DISK_LABEL_VTOC) {
usr/src/uts/sun4v/io/vds.c
6313
status = vd_setup_partition_vtoc(vd);
usr/src/uts/sun4v/io/vds.c
6317
status = vd_setup_partition_efi(vd);
usr/src/uts/sun4v/io/vds.c
6359
vd_backend_check_size(vd_t *vd)
usr/src/uts/sun4v/io/vds.c
6368
if (vd->file) {
usr/src/uts/sun4v/io/vds.c
6372
rv = VOP_GETATTR(vd->file_vnode, &vattr, 0, kcred, NULL);
usr/src/uts/sun4v/io/vds.c
6374
PR0("VOP_GETATTR(%s) = errno %d", vd->device_path, rv);
usr/src/uts/sun4v/io/vds.c
6381
} else if (vd->volume) {
usr/src/uts/sun4v/io/vds.c
6384
rv = ldi_get_size(vd->ldi_handle[0], &backend_size);
usr/src/uts/sun4v/io/vds.c
6386
PR0("ldi_get_size() failed for %s", vd->device_path);
usr/src/uts/sun4v/io/vds.c
6395
rv = ldi_ioctl(vd->ldi_handle[0], DKIOCGMEDIAINFO,
usr/src/uts/sun4v/io/vds.c
6396
(intptr_t)&minfo, (vd->open_flags | FKIOCTL),
usr/src/uts/sun4v/io/vds.c
6400
vd->device_path, rv);
usr/src/uts/sun4v/io/vds.c
6404
if (vd->vdisk_type == VD_DISK_TYPE_SLICE) {
usr/src/uts/sun4v/io/vds.c
6405
rv = ldi_get_size(vd->ldi_handle[0], &backend_size);
usr/src/uts/sun4v/io/vds.c
6408
vd->device_path);
usr/src/uts/sun4v/io/vds.c
6412
ASSERT(vd->vdisk_type == VD_DISK_TYPE_DISK);
usr/src/uts/sun4v/io/vds.c
6434
old_size = vd->vdisk_size;
usr/src/uts/sun4v/io/vds.c
6439
vd->vdisk_bsize == vdisk_bsize)
usr/src/uts/sun4v/io/vds.c
6451
vd->vio_bshift = nshift;
usr/src/uts/sun4v/io/vds.c
6452
vd->vdisk_size = new_size;
usr/src/uts/sun4v/io/vds.c
6453
vd->vdisk_bsize = vdisk_bsize;
usr/src/uts/sun4v/io/vds.c
6454
vd->backend_bsize = backend_bsize;
usr/src/uts/sun4v/io/vds.c
6456
if (vd->file || vd->volume)
usr/src/uts/sun4v/io/vds.c
6457
vd->dskimg_size = backend_size;
usr/src/uts/sun4v/io/vds.c
6465
if (vd->vdisk_type == VD_DISK_TYPE_SLICE) {
usr/src/uts/sun4v/io/vds.c
6467
if (vd->vdisk_label == VD_DISK_LABEL_VTOC) {
usr/src/uts/sun4v/io/vds.c
6468
rv = vd_setup_partition_vtoc(vd);
usr/src/uts/sun4v/io/vds.c
6471
"(err = %d)", vd->device_path, rv);
usr/src/uts/sun4v/io/vds.c
6475
rv = vd_setup_partition_efi(vd);
usr/src/uts/sun4v/io/vds.c
6478
"(err = %d)", vd->device_path, rv);
usr/src/uts/sun4v/io/vds.c
6483
} else if (!vd->file && !vd->volume) {
usr/src/uts/sun4v/io/vds.c
6485
ASSERT(vd->vdisk_type == VD_DISK_TYPE_DISK);
usr/src/uts/sun4v/io/vds.c
6486
vd->vdisk_media = media;
usr/src/uts/sun4v/io/vds.c
6506
vd_identify_dev(vd_t *vd, int *dtype)
usr/src/uts/sun4v/io/vds.c
6509
char *device_path = vd->device_path;
usr/src/uts/sun4v/io/vds.c
6512
vds_t *vds = vd->vds;
usr/src/uts/sun4v/io/vds.c
6514
status = vd_open_using_ldi_by_name(vd, vd->open_flags & ~FWRITE);
usr/src/uts/sun4v/io/vds.c
6521
if ((status = ldi_get_dev(vd->ldi_handle[0], &vd->dev[0])) != 0) {
usr/src/uts/sun4v/io/vds.c
6531
drv_name = ddi_major_to_name(getmajor(vd->dev[0]));
usr/src/uts/sun4v/io/vds.c
6560
vd->zvol = B_TRUE;
usr/src/uts/sun4v/io/vds.c
6568
vd_setup_vd(vd_t *vd)
usr/src/uts/sun4v/io/vds.c
6573
char *path = vd->device_path;
usr/src/uts/sun4v/io/vds.c
6590
vd->volume = B_FALSE;
usr/src/uts/sun4v/io/vds.c
6591
status = vd_setup_backend_vnode(vd);
usr/src/uts/sun4v/io/vds.c
6630
if ((status = vd_identify_dev(vd, &drv_type)) != 0) {
usr/src/uts/sun4v/io/vds.c
6646
vd->volume = B_TRUE;
usr/src/uts/sun4v/io/vds.c
6658
if (vd->volume && vd_volume_force_slice) {
usr/src/uts/sun4v/io/vds.c
6659
vd->vdisk_type = VD_DISK_TYPE_SLICE;
usr/src/uts/sun4v/io/vds.c
6660
vd->nslices = 1;
usr/src/uts/sun4v/io/vds.c
6663
status = vd_setup_backend_ldi(vd);
usr/src/uts/sun4v/io/vds.c
668
static int vd_setup_vd(vd_t *vd);
usr/src/uts/sun4v/io/vds.c
6680
if (!(vd->initialized & VD_SETUP_ERROR) &&
usr/src/uts/sun4v/io/vds.c
6681
!(DEVI_IS_ATTACHING(vd->vds->dip))) {
usr/src/uts/sun4v/io/vds.c
669
static int vd_setup_single_slice_disk(vd_t *vd);
usr/src/uts/sun4v/io/vds.c
6690
vd->initialized |= VD_SETUP_ERROR;
usr/src/uts/sun4v/io/vds.c
6692
} else if (vd->initialized & VD_SETUP_ERROR) {
usr/src/uts/sun4v/io/vds.c
6695
vd->initialized &= ~VD_SETUP_ERROR;
usr/src/uts/sun4v/io/vds.c
670
static int vd_setup_slice_image(vd_t *vd);
usr/src/uts/sun4v/io/vds.c
6706
if ((vd->file || vd->zvol) && vd->ioq == NULL) {
usr/src/uts/sun4v/io/vds.c
6707
(void) snprintf(tq_name, sizeof (tq_name), "vd_ioq%lu", vd->id);
usr/src/uts/sun4v/io/vds.c
6709
if ((vd->ioq = ddi_taskq_create(vd->vds->dip, tq_name,
usr/src/uts/sun4v/io/vds.c
671
static int vd_setup_disk_image(vd_t *vd);
usr/src/uts/sun4v/io/vds.c
672
static int vd_backend_check_size(vd_t *vd);
usr/src/uts/sun4v/io/vds.c
6727
vd_t *vd;
usr/src/uts/sun4v/io/vds.c
673
static boolean_t vd_enabled(vd_t *vd);
usr/src/uts/sun4v/io/vds.c
6735
if ((vd = kmem_zalloc(sizeof (*vd), KM_NOSLEEP)) == NULL) {
usr/src/uts/sun4v/io/vds.c
6739
*vdp = vd; /* assign here so vds_destroy_vd() can cleanup later */
usr/src/uts/sun4v/io/vds.c
6740
vd->id = id;
usr/src/uts/sun4v/io/vds.c
6741
vd->vds = vds;
usr/src/uts/sun4v/io/vds.c
6742
(void) strncpy(vd->device_path, device_path, MAXPATHLEN);
usr/src/uts/sun4v/io/vds.c
6745
vd->open_flags = FREAD;
usr/src/uts/sun4v/io/vds.c
6748
vd->open_flags |= FWRITE;
usr/src/uts/sun4v/io/vds.c
675
static int vd_dskimg_validate_geometry(vd_t *vd);
usr/src/uts/sun4v/io/vds.c
6751
vd->open_flags |= FEXCL;
usr/src/uts/sun4v/io/vds.c
6755
vd->vdisk_type = VD_DISK_TYPE_SLICE;
usr/src/uts/sun4v/io/vds.c
6756
vd->nslices = 1;
usr/src/uts/sun4v/io/vds.c
6758
vd->vdisk_type = VD_DISK_TYPE_DISK;
usr/src/uts/sun4v/io/vds.c
6759
vd->nslices = V_NUMPAR;
usr/src/uts/sun4v/io/vds.c
676
static boolean_t vd_dskimg_is_iso_image(vd_t *vd);
usr/src/uts/sun4v/io/vds.c
6763
vd->vdisk_label = VD_DISK_LABEL_UNK;
usr/src/uts/sun4v/io/vds.c
6766
if ((status = vd_setup_vd(vd)) == 0) {
usr/src/uts/sun4v/io/vds.c
6767
vd->initialized |= VD_DISK_READY;
usr/src/uts/sun4v/io/vds.c
6769
ASSERT(vd->nslices > 0 && vd->nslices <= V_NUMPAR);
usr/src/uts/sun4v/io/vds.c
677
static void vd_set_exported_operations(vd_t *vd);
usr/src/uts/sun4v/io/vds.c
6771
((vd->vdisk_type == VD_DISK_TYPE_DISK) ? "disk" : "slice"),
usr/src/uts/sun4v/io/vds.c
6772
(vd->volume ? "yes" : "no"), (vd->file ? "yes" : "no"),
usr/src/uts/sun4v/io/vds.c
6773
vd->nslices);
usr/src/uts/sun4v/io/vds.c
678
static void vd_reset_access(vd_t *vd);
usr/src/uts/sun4v/io/vds.c
6786
mutex_init(&vd->lock, NULL, MUTEX_DRIVER, iblock);
usr/src/uts/sun4v/io/vds.c
6787
vd->initialized |= VD_LOCKING;
usr/src/uts/sun4v/io/vds.c
679
static int vd_backend_ioctl(vd_t *vd, int cmd, caddr_t arg);
usr/src/uts/sun4v/io/vds.c
6793
if ((vd->startq = ddi_taskq_create(vds->dip, tq_name, 1,
usr/src/uts/sun4v/io/vds.c
6800
if ((vd->completionq = ddi_taskq_create(vds->dip, tq_name, 1,
usr/src/uts/sun4v/io/vds.c
6807
vd->max_msglen = sizeof (vio_msg_t); /* baseline vio message size */
usr/src/uts/sun4v/io/vds.c
6808
vd->vio_msgp = kmem_alloc(vd->max_msglen, KM_SLEEP);
usr/src/uts/sun4v/io/vds.c
6810
vd->enabled = 1; /* before callback can dispatch to startq */
usr/src/uts/sun4v/io/vds.c
6818
if ((status = ldc_init(ldc_id, &ldc_attr, &vd->ldc_handle)) != 0) {
usr/src/uts/sun4v/io/vds.c
6823
vd->initialized |= VD_LDC;
usr/src/uts/sun4v/io/vds.c
6825
if ((status = ldc_reg_callback(vd->ldc_handle, vd_handle_ldc_events,
usr/src/uts/sun4v/io/vds.c
6826
(caddr_t)vd)) != 0) {
usr/src/uts/sun4v/io/vds.c
6832
if ((status = ldc_open(vd->ldc_handle)) != 0) {
usr/src/uts/sun4v/io/vds.c
6838
if ((status = ldc_up(vd->ldc_handle)) != 0) {
usr/src/uts/sun4v/io/vds.c
6843
status = ldc_mem_alloc_handle(vd->ldc_handle, &(vd->inband_task.mhdl));
usr/src/uts/sun4v/io/vds.c
6851
if (mod_hash_insert(vds->vd_table, (mod_hash_key_t)id, vd) != 0) {
usr/src/uts/sun4v/io/vds.c
6857
vd->state = VD_STATE_INIT;
usr/src/uts/sun4v/io/vds.c
687
static boolean_t vd_slice_geom_isvalid(vd_t *vd, struct dk_geom *geom);
usr/src/uts/sun4v/io/vds.c
688
static boolean_t vd_slice_vtoc_isvalid(vd_t *vd, struct extvtoc *vtoc);
usr/src/uts/sun4v/io/vds.c
6894
vd_t *vd = (vd_t *)arg;
usr/src/uts/sun4v/io/vds.c
6897
if (vd == NULL)
usr/src/uts/sun4v/io/vds.c
6903
if (vd->initialized & VD_LOCKING) {
usr/src/uts/sun4v/io/vds.c
6904
mutex_enter(&vd->lock);
usr/src/uts/sun4v/io/vds.c
6905
vd->enabled = 0;
usr/src/uts/sun4v/io/vds.c
6906
mutex_exit(&vd->lock);
usr/src/uts/sun4v/io/vds.c
6910
if (vd->startq != NULL)
usr/src/uts/sun4v/io/vds.c
6911
ddi_taskq_destroy(vd->startq); /* waits for queued tasks */
usr/src/uts/sun4v/io/vds.c
6914
if (vd->ioq != NULL)
usr/src/uts/sun4v/io/vds.c
6915
ddi_taskq_destroy(vd->ioq);
usr/src/uts/sun4v/io/vds.c
6918
if (vd->completionq != NULL)
usr/src/uts/sun4v/io/vds.c
6919
ddi_taskq_destroy(vd->completionq); /* waits for tasks */
usr/src/uts/sun4v/io/vds.c
6921
vd_free_dring_task(vd);
usr/src/uts/sun4v/io/vds.c
6924
(void) ldc_mem_free_handle(vd->inband_task.mhdl);
usr/src/uts/sun4v/io/vds.c
6927
if (vd->initialized & VD_LDC) {
usr/src/uts/sun4v/io/vds.c
6929
if (vd->initialized & VD_DRING)
usr/src/uts/sun4v/io/vds.c
6930
(void) ldc_mem_dring_unmap(vd->dring_handle);
usr/src/uts/sun4v/io/vds.c
6933
while ((rv = ldc_close(vd->ldc_handle)) == EAGAIN) {
usr/src/uts/sun4v/io/vds.c
6941
(void) ldc_unreg_callback(vd->ldc_handle);
usr/src/uts/sun4v/io/vds.c
6942
(void) ldc_fini(vd->ldc_handle);
usr/src/uts/sun4v/io/vds.c
6951
(void) ldc_set_cb_mode(vd->ldc_handle, LDC_CB_DISABLE);
usr/src/uts/sun4v/io/vds.c
6952
while (ldc_unreg_callback(vd->ldc_handle) == EAGAIN)
usr/src/uts/sun4v/io/vds.c
6958
if (vd->vio_msgp != NULL) {
usr/src/uts/sun4v/io/vds.c
6959
kmem_free(vd->vio_msgp, vd->max_msglen);
usr/src/uts/sun4v/io/vds.c
6960
vd->vio_msgp = NULL;
usr/src/uts/sun4v/io/vds.c
6964
if (vd->inband_task.msg != NULL) {
usr/src/uts/sun4v/io/vds.c
6965
kmem_free(vd->inband_task.msg, vd->max_msglen);
usr/src/uts/sun4v/io/vds.c
6966
vd->inband_task.msg = NULL;
usr/src/uts/sun4v/io/vds.c
6969
if (vd->file) {
usr/src/uts/sun4v/io/vds.c
6971
(void) VOP_CLOSE(vd->file_vnode, vd->open_flags, 1,
usr/src/uts/sun4v/io/vds.c
6973
VN_RELE(vd->file_vnode);
usr/src/uts/sun4v/io/vds.c
6977
if (vd->ldi_handle[slice] != NULL) {
usr/src/uts/sun4v/io/vds.c
6979
(void) ldi_close(vd->ldi_handle[slice],
usr/src/uts/sun4v/io/vds.c
6980
vd->open_flags, kcred);
usr/src/uts/sun4v/io/vds.c
6986
if (vd->dskimg_devid != NULL)
usr/src/uts/sun4v/io/vds.c
6987
ddi_devid_free(vd->dskimg_devid);
usr/src/uts/sun4v/io/vds.c
6990
if (vd->flabel) {
usr/src/uts/sun4v/io/vds.c
6991
kmem_free(vd->flabel, vd->flabel_size);
usr/src/uts/sun4v/io/vds.c
6992
vd->flabel = NULL;
usr/src/uts/sun4v/io/vds.c
6993
vd->flabel_size = 0;
usr/src/uts/sun4v/io/vds.c
6997
if (vd->initialized & VD_LOCKING)
usr/src/uts/sun4v/io/vds.c
6998
mutex_destroy(&vd->lock);
usr/src/uts/sun4v/io/vds.c
7001
kmem_free(vd, sizeof (*vd));
usr/src/uts/sun4v/io/vds.c
7009
vd_t *vd = NULL;
usr/src/uts/sun4v/io/vds.c
7013
ldc_id, &vd)) != 0)
usr/src/uts/sun4v/io/vds.c
7014
vds_destroy_vd(vd);
usr/src/uts/sun4v/io/vds.c
756
vd_dskimg_io_params(vd_t *vd, int slice, size_t *blkp, size_t *lenp)
usr/src/uts/sun4v/io/vds.c
762
ASSERT(vd->file || VD_DSKIMG(vd));
usr/src/uts/sun4v/io/vds.c
764
ASSERT(vd->vdisk_bsize == DEV_BSIZE);
usr/src/uts/sun4v/io/vds.c
772
if (vd->vdisk_type == VD_DISK_TYPE_SLICE || slice == VD_SLICE_NONE) {
usr/src/uts/sun4v/io/vds.c
775
if (offset >= vd->dskimg_size) {
usr/src/uts/sun4v/io/vds.c
778
offset, vd->dskimg_size);
usr/src/uts/sun4v/io/vds.c
781
maxlen = vd->dskimg_size - offset;
usr/src/uts/sun4v/io/vds.c
791
if (vd->vdisk_label == VD_DISK_LABEL_UNK &&
usr/src/uts/sun4v/io/vds.c
792
vio_ver_is_supported(vd->version, 1, 1)) {
usr/src/uts/sun4v/io/vds.c
793
(void) vd_dskimg_validate_geometry(vd);
usr/src/uts/sun4v/io/vds.c
794
if (vd->vdisk_label == VD_DISK_LABEL_UNK) {
usr/src/uts/sun4v/io/vds.c
801
if (vd->vdisk_label == VD_DISK_LABEL_VTOC) {
usr/src/uts/sun4v/io/vds.c
802
ASSERT(vd->vtoc.v_sectorsz == DEV_BSIZE);
usr/src/uts/sun4v/io/vds.c
804
ASSERT(vd->vdisk_label == VD_DISK_LABEL_EFI);
usr/src/uts/sun4v/io/vds.c
807
if (blk >= vd->slices[slice].nblocks) {
usr/src/uts/sun4v/io/vds.c
810
blk, vd->slices[slice].nblocks);
usr/src/uts/sun4v/io/vds.c
814
offset = (vd->slices[slice].start + blk) * DEV_BSIZE;
usr/src/uts/sun4v/io/vds.c
815
maxlen = (vd->slices[slice].nblocks - blk) * DEV_BSIZE;
usr/src/uts/sun4v/io/vds.c
834
if ((offset + len) > vd->dskimg_size) {
usr/src/uts/sun4v/io/vds.c
836
"dskimg_size (0x%lx)", offset, len, vd->dskimg_size);
usr/src/uts/sun4v/io/vds.c
873
vd_dskimg_rw(vd_t *vd, int slice, int operation, caddr_t data, size_t offset,
usr/src/uts/sun4v/io/vds.c
880
ASSERT(vd->file || VD_DSKIMG(vd));
usr/src/uts/sun4v/io/vds.c
882
ASSERT(vd->vdisk_bsize == DEV_BSIZE);
usr/src/uts/sun4v/io/vds.c
884
if ((status = vd_dskimg_io_params(vd, slice, &offset, &len)) != 0)
usr/src/uts/sun4v/io/vds.c
887
if (vd->volume) {
usr/src/uts/sun4v/io/vds.c
894
buf.b_edev = vd->dev[0];
usr/src/uts/sun4v/io/vds.c
907
if (ldi_strategy(vd->ldi_handle[0], &buf) != 0) {
usr/src/uts/sun4v/io/vds.c
924
ASSERT(vd->file);
usr/src/uts/sun4v/io/vds.c
927
vd->file_vnode, data, len, offset * DEV_BSIZE, UIO_SYSSPACE, FSYNC,
usr/src/uts/sun4v/sys/vdsk_common.h
542
#define VD_UPDATE_IO_STATS(vd, op, len) \
usr/src/uts/sun4v/sys/vdsk_common.h
544
ASSERT((vd) != NULL); \
usr/src/uts/sun4v/sys/vdsk_common.h
545
ASSERT(MUTEX_HELD(&(vd)->lock)); \
usr/src/uts/sun4v/sys/vdsk_common.h
547
if ((vd)->io_stats != NULL) { \
usr/src/uts/sun4v/sys/vdsk_common.h
548
kstat_io_t *kip = KSTAT_IO_PTR((vd)->io_stats); \
usr/src/uts/sun4v/sys/vdsk_common.h
565
#define VD_KSTAT_WAITQ_ENTER(vd) \
usr/src/uts/sun4v/sys/vdsk_common.h
566
if ((vd)->io_stats != NULL) { \
usr/src/uts/sun4v/sys/vdsk_common.h
567
ASSERT(MUTEX_HELD(&(vd)->lock)); \
usr/src/uts/sun4v/sys/vdsk_common.h
568
kstat_waitq_enter(KSTAT_IO_PTR((vd)->io_stats)); \
usr/src/uts/sun4v/sys/vdsk_common.h
571
#define VD_KSTAT_WAITQ_EXIT(vd) \
usr/src/uts/sun4v/sys/vdsk_common.h
572
if ((vd)->io_stats != NULL) { \
usr/src/uts/sun4v/sys/vdsk_common.h
573
ASSERT(MUTEX_HELD(&(vd)->lock)); \
usr/src/uts/sun4v/sys/vdsk_common.h
574
kstat_waitq_exit(KSTAT_IO_PTR((vd)->io_stats)); \
usr/src/uts/sun4v/sys/vdsk_common.h
577
#define VD_KSTAT_WAITQ_TO_RUNQ(vd) \
usr/src/uts/sun4v/sys/vdsk_common.h
578
if ((vd)->io_stats != NULL) { \
usr/src/uts/sun4v/sys/vdsk_common.h
579
ASSERT(MUTEX_HELD(&(vd)->lock)); \
usr/src/uts/sun4v/sys/vdsk_common.h
580
kstat_waitq_to_runq(KSTAT_IO_PTR((vd)->io_stats)); \
usr/src/uts/sun4v/sys/vdsk_common.h
583
#define VD_KSTAT_RUNQ_BACK_TO_WAITQ(vd) \
usr/src/uts/sun4v/sys/vdsk_common.h
584
if ((vd)->io_stats != NULL) { \
usr/src/uts/sun4v/sys/vdsk_common.h
585
ASSERT(MUTEX_HELD(&(vd)->lock)); \
usr/src/uts/sun4v/sys/vdsk_common.h
586
kstat_runq_back_to_waitq(KSTAT_IO_PTR((vd)->io_stats)); \
usr/src/uts/sun4v/sys/vdsk_common.h
589
#define VD_KSTAT_RUNQ_ENTER(vd) \
usr/src/uts/sun4v/sys/vdsk_common.h
590
if ((vd)->io_stats != NULL) { \
usr/src/uts/sun4v/sys/vdsk_common.h
591
ASSERT(MUTEX_HELD(&(vd)->lock)); \
usr/src/uts/sun4v/sys/vdsk_common.h
592
kstat_runq_enter(KSTAT_IO_PTR((vd)->io_stats)); \
usr/src/uts/sun4v/sys/vdsk_common.h
595
#define VD_KSTAT_RUNQ_EXIT(vd) \
usr/src/uts/sun4v/sys/vdsk_common.h
596
if ((vd)->io_stats != NULL) { \
usr/src/uts/sun4v/sys/vdsk_common.h
597
ASSERT(MUTEX_HELD(&(vd)->lock)); \
usr/src/uts/sun4v/sys/vdsk_common.h
598
kstat_runq_exit(KSTAT_IO_PTR((vd)->io_stats)); \
usr/src/uts/sun4v/sys/vdsk_common.h
605
#define VD_UPDATE_ERR_STATS(vd, stat_entry) \
usr/src/uts/sun4v/sys/vdsk_common.h
607
ASSERT((vd) != NULL); \
usr/src/uts/sun4v/sys/vdsk_common.h
608
ASSERT(MUTEX_HELD(&(vd)->lock)); \
usr/src/uts/sun4v/sys/vdsk_common.h
609
if ((vd)->err_stats != NULL) { \
usr/src/uts/sun4v/sys/vdsk_common.h
611
stp = (vd_err_stats_t *)(vd)->err_stats->ks_data; \