/illumos-gate/usr/src/uts/common/fs/zfs/ |
H A D | zio.c | 109 #define IO_IS_ALLOCATING(zio) ((zio)->io_orig_pipeline & ZIO_STAGE_DVA_ALLOCATE) argument 294 zio_push_transform(zio_t *zio, abd_t *data, uint64_t size, uint64_t bufsize, in zio_push_transform() argument 303 IMPLY(abd_is_linear(zio->io_abd), abd_is_linear(data)); in zio_push_transform() 305 zt->zt_orig_abd = zio->io_abd; in zio_push_transform() 306 zt->zt_orig_size = zio->io_size; in zio_push_transform() 310 zt->zt_next = zio->io_transform_stack; in zio_push_transform() 311 zio->io_transform_stack = zt; in zio_push_transform() 313 zio->io_abd = data; in zio_push_transform() 314 zio->io_size = size; in zio_push_transform() 318 zio_pop_transforms(zio_t *zio) in zio_pop_transforms() argument [all …]
|
H A D | vdev_queue.c | 266 sizeof (zio_t), offsetof(struct zio, io_queue_node)); in vdev_queue_init() 269 offsetof(struct zio, io_offset_node)); in vdev_queue_init() 272 offsetof(struct zio, io_offset_node)); in vdev_queue_init() 275 offsetof(struct zio, io_offset_node)); in vdev_queue_init() 294 sizeof (zio_t), offsetof(struct zio, io_queue_node)); in vdev_queue_init() 316 vdev_queue_io_add(vdev_queue_t *vq, zio_t *zio) in vdev_queue_io_add() argument 318 spa_t *spa = zio->io_spa; in vdev_queue_io_add() 320 ASSERT3U(zio->io_priority, <, ZIO_PRIORITY_NUM_QUEUEABLE); in vdev_queue_io_add() 321 avl_add(vdev_queue_class_tree(vq, zio->io_priority), zio); in vdev_queue_io_add() 322 avl_add(vdev_queue_type_tree(vq, zio->io_type), zio); in vdev_queue_io_add() [all …]
|
H A D | vdev_mirror.c | 167 vdev_mirror_map_free(zio_t *zio) in vdev_mirror_map_free() argument 169 mirror_map_t *mm = zio->io_vsd; in vdev_mirror_map_free() 244 vdev_mirror_map_init(zio_t *zio) in vdev_mirror_map_init() argument 248 vdev_t *vd = zio->io_vd; in vdev_mirror_map_init() 252 dva_t *dva = zio->io_bp->blk_dva; in vdev_mirror_map_init() 253 spa_t *spa = zio->io_spa; in vdev_mirror_map_init() 275 if ((zio->io_flags & ZIO_FLAG_SCRUB) && in vdev_mirror_map_init() 276 !(zio->io_flags & ZIO_FLAG_IO_RETRY) && in vdev_mirror_map_init() 282 c = BP_GET_NDVAS(zio->io_bp); in vdev_mirror_map_init() 290 ASSERT3U(zio->io_type, ==, ZIO_TYPE_READ); in vdev_mirror_map_init() [all …]
|
H A D | vdev_file.c | 177 zio_t *zio = vb->vb_io; in vdev_file_io_intr() local 179 zio->io_error = (geterror(bp) != 0 ? EIO : 0); in vdev_file_io_intr() 180 if (zio->io_error == 0 && bp->b_resid != 0) in vdev_file_io_intr() 181 zio->io_error = SET_ERROR(ENOSPC); in vdev_file_io_intr() 183 if (zio->io_type == ZIO_TYPE_READ) { in vdev_file_io_intr() 184 abd_return_buf_copy(zio->io_abd, bp->b_un.b_addr, zio->io_size); in vdev_file_io_intr() 186 abd_return_buf(zio->io_abd, bp->b_un.b_addr, zio->io_size); in vdev_file_io_intr() 190 zio_delay_interrupt(zio); in vdev_file_io_intr() 216 vdev_file_io_start(zio_t *zio) in vdev_file_io_start() argument 218 vdev_t *vd = zio->io_vd; in vdev_file_io_start() [all …]
|
H A D | vdev_cache.c | 155 vdev_cache_allocate(zio_t *zio) in vdev_cache_allocate() argument 157 vdev_cache_t *vc = &zio->io_vd->vdev_cache; in vdev_cache_allocate() 158 uint64_t offset = P2ALIGN(zio->io_offset, VCBS); in vdev_cache_allocate() 191 vdev_cache_hit(vdev_cache_t *vc, vdev_cache_entry_t *ve, zio_t *zio) in vdev_cache_hit() argument 193 uint64_t cache_phase = P2PHASE(zio->io_offset, VCBS); in vdev_cache_hit() 205 abd_copy_off(zio->io_abd, ve->ve_abd, 0, cache_phase, zio->io_size); in vdev_cache_hit() 251 vdev_cache_read(zio_t *zio) in vdev_cache_read() argument 253 vdev_cache_t *vc = &zio->io_vd->vdev_cache; in vdev_cache_read() 255 uint64_t cache_offset = P2ALIGN(zio->io_offset, VCBS); in vdev_cache_read() 256 uint64_t cache_phase = P2PHASE(zio->io_offset, VCBS); in vdev_cache_read() [all …]
|
H A D | vdev_indirect.c | 291 vdev_indirect_map_free(zio_t *zio) in vdev_indirect_map_free() argument 293 indirect_vsd_t *iv = zio->io_vsd; in vdev_indirect_map_free() 1160 vdev_indirect_child_io_done(zio_t *zio) in vdev_indirect_child_io_done() argument 1162 zio_t *pio = zio->io_private; in vdev_indirect_child_io_done() 1165 pio->io_error = zio_worst_error(pio->io_error, zio->io_error); in vdev_indirect_child_io_done() 1168 abd_put(zio->io_abd); in vdev_indirect_child_io_done() 1179 zio_t *zio = arg; in vdev_indirect_gather_splits() local 1180 indirect_vsd_t *iv = zio->io_vsd; in vdev_indirect_gather_splits() 1221 vdev_indirect_read_split_done(zio_t *zio) in vdev_indirect_read_split_done() argument 1223 indirect_child_t *ic = zio->io_private; in vdev_indirect_read_split_done() [all …]
|
H A D | vdev_label.c | 188 vdev_label_read(zio_t *zio, vdev_t *vd, int l, abd_t *buf, uint64_t offset, in vdev_label_read() argument 192 spa_config_held(zio->io_spa, SCL_STATE, RW_READER) == SCL_STATE || in vdev_label_read() 193 spa_config_held(zio->io_spa, SCL_STATE, RW_WRITER) == SCL_STATE); in vdev_label_read() 196 zio_nowait(zio_read_phys(zio, vd, in vdev_label_read() 203 vdev_label_write(zio_t *zio, vdev_t *vd, int l, abd_t *buf, uint64_t offset, in vdev_label_write() argument 207 spa_config_held(zio->io_spa, SCL_STATE, RW_READER) == SCL_STATE || in vdev_label_write() 208 spa_config_held(zio->io_spa, SCL_STATE, RW_WRITER) == SCL_STATE); in vdev_label_write() 211 zio_nowait(zio_write_phys(zio, vd, in vdev_label_write() 754 zio_t *zio; in vdev_label_read_config() local 773 zio = zio_root(spa, NULL, NULL, flags); in vdev_label_read_config() [all …]
|
H A D | vdev_disk.c | 855 zio_t *zio = vb->vb_io; in vdev_disk_io_intr() local 862 zio->io_error = (geterror(bp) != 0 ? EIO : 0); in vdev_disk_io_intr() 864 if (zio->io_error == 0 && bp->b_resid != 0) in vdev_disk_io_intr() 865 zio->io_error = SET_ERROR(EIO); in vdev_disk_io_intr() 867 if (zio->io_type == ZIO_TYPE_READ) { in vdev_disk_io_intr() 868 abd_return_buf_copy(zio->io_abd, bp->b_un.b_addr, zio->io_size); in vdev_disk_io_intr() 870 abd_return_buf(zio->io_abd, bp->b_un.b_addr, zio->io_size); in vdev_disk_io_intr() 875 zio_delay_interrupt(zio); in vdev_disk_io_intr() 880 vdev_disk_ioctl_free(zio_t *zio) in vdev_disk_ioctl_free() argument 882 kmem_free(zio->io_vsd, sizeof (struct dk_callback)); in vdev_disk_ioctl_free() [all …]
|
H A D | zio_inject.c | 191 zio_match_dva(zio_t *zio) in zio_match_dva() argument 195 if (zio->io_bp != NULL && zio->io_vd != NULL && in zio_match_dva() 196 zio->io_child_type == ZIO_CHILD_VDEV) { in zio_match_dva() 197 for (i = BP_GET_NDVAS(zio->io_bp) - 1; i >= 0; i--) { in zio_match_dva() 198 dva_t *dva = &zio->io_bp->blk_dva[i]; in zio_match_dva() 200 vdev_t *vd = vdev_lookup_top(zio->io_spa, in zio_match_dva() 204 if (zio->io_vd->vdev_ops->vdev_op_leaf) in zio_match_dva() 207 if (zio->io_vd == vd && zio->io_offset == off) in zio_match_dva() 252 zio_handle_fault_injection(zio_t *zio, int error) in zio_handle_fault_injection() argument 260 if (zio->io_logical == NULL) in zio_handle_fault_injection() [all …]
|
H A D | zfs_fm.c | 112 zio_t *zio, uint64_t stateoroffset, uint64_t size) in zfs_ereport_start() argument 119 if (!zfs_ereport_is_valid(subclass, spa, vd, zio)) in zfs_ereport_start() 144 } else if (zio != NULL && zio->io_logical != NULL) { in zfs_ereport_start() 145 if (zio->io_logical->io_ena == 0) in zfs_ereport_start() 146 zio->io_logical->io_ena = in zfs_ereport_start() 148 ena = zio->io_logical->io_ena; in zfs_ereport_start() 230 if (zio != NULL) { in zfs_ereport_start() 235 DATA_TYPE_INT32, zio->io_error, NULL); in zfs_ereport_start() 252 DATA_TYPE_UINT64, zio->io_offset, in zfs_ereport_start() 254 DATA_TYPE_UINT64, zio->io_size, NULL); in zfs_ereport_start() [all …]
|
H A D | vdev_raidz.c | 162 vdev_raidz_map_free_vsd(zio_t *zio) in vdev_raidz_map_free_vsd() argument 164 raidz_map_t *rm = zio->io_vsd; in vdev_raidz_map_free_vsd() 277 vdev_raidz_cksum_report(zio_t *zio, zio_cksum_report_t *zcr, void *arg) in vdev_raidz_cksum_report() argument 282 raidz_map_t *rm = zio->io_vsd; in vdev_raidz_cksum_report() 338 vdev_raidz_map_alloc(zio_t *zio, uint64_t ashift, uint64_t dcols, in vdev_raidz_map_alloc() argument 343 uint64_t b = zio->io_offset >> ashift; in vdev_raidz_map_alloc() 345 uint64_t s = zio->io_size >> ashift; in vdev_raidz_map_alloc() 438 rm->rm_col[c].rc_abd = abd_get_offset_size(zio->io_abd, 0, in vdev_raidz_map_alloc() 443 rm->rm_col[c].rc_abd = abd_get_offset_size(zio->io_abd, off, in vdev_raidz_map_alloc() 471 if (rm->rm_firstdatacol == 1 && (zio->io_offset & (1ULL << 20))) { in vdev_raidz_map_alloc() [all …]
|
H A D | zio_checksum.c | 334 zio_checksum_compute(zio_t *zio, enum zio_checksum checksum, in zio_checksum_compute() argument 338 blkptr_t *bp = zio->io_bp; in zio_checksum_compute() 339 uint64_t offset = zio->io_offset; in zio_checksum_compute() 342 spa_t *spa = zio->io_spa; in zio_checksum_compute() 530 zio_checksum_error(zio_t *zio, zio_bad_cksum_t *info) in zio_checksum_error() argument 532 blkptr_t *bp = zio->io_bp; in zio_checksum_error() 533 uint_t checksum = (bp == NULL ? zio->io_prop.zp_checksum : in zio_checksum_error() 536 uint64_t size = (bp == NULL ? zio->io_size : in zio_checksum_error() 538 uint64_t offset = zio->io_offset; in zio_checksum_error() 539 abd_t *data = zio->io_abd; in zio_checksum_error() [all …]
|
H A D | vdev_missing.c | 71 vdev_missing_io_start(zio_t *zio) in vdev_missing_io_start() argument 73 zio->io_error = SET_ERROR(ENOTSUP); in vdev_missing_io_start() 74 zio_execute(zio); in vdev_missing_io_start() 79 vdev_missing_io_done(zio_t *zio) in vdev_missing_io_done() argument
|
H A D | arc.c | 1334 arc_cksum_is_equal(arc_buf_hdr_t *hdr, zio_t *zio) in arc_cksum_is_equal() argument 1336 ASSERT(!BP_IS_EMBEDDED(zio->io_bp)); in arc_cksum_is_equal() 1337 VERIFY3U(BP_GET_PSIZE(zio->io_bp), ==, HDR_GET_PSIZE(hdr)); in arc_cksum_is_equal() 1352 return (zio_checksum_error_impl(zio->io_spa, zio->io_bp, in arc_cksum_is_equal() 1353 BP_GET_CHECKSUM(zio->io_bp), zio->io_abd, zio->io_size, in arc_cksum_is_equal() 1354 zio->io_offset, NULL) == 0); in arc_cksum_is_equal() 2713 static void l2arc_log_blk_fetch_abort(zio_t *zio); 2733 static void l2arc_blk_fetch_done(zio_t *zio); 5297 arc_bcopy_func(zio_t *zio, const zbookmark_phys_t *zb, const blkptr_t *bp, in arc_bcopy_func() argument 5309 arc_getbuf_func(zio_t *zio, const zbookmark_phys_t *zb, const blkptr_t *bp, in arc_getbuf_func() argument [all …]
|
H A D | dbuf.c | 986 dbuf_read_done(zio_t *zio, const zbookmark_phys_t *zb, const blkptr_t *bp, in dbuf_read_done() argument 1001 ASSERT(zio == NULL || zio->io_error != 0); in dbuf_read_done() 1007 ASSERT(zio == NULL || zio->io_error == 0); in dbuf_read_done() 1020 ASSERT(zio == NULL || zio->io_error == 0); in dbuf_read_done() 1090 dbuf_read_impl(dmu_buf_impl_t *db, zio_t *zio, uint32_t flags, in dbuf_read_impl() argument 1227 (void) arc_read(zio, db->db_objset->os_spa, &bp, in dbuf_read_impl() 1311 dbuf_read(dmu_buf_impl_t *db, zio_t *zio, uint32_t flags) in dbuf_read() argument 1375 if (zio == NULL && in dbuf_read() 1377 zio = zio_root(spa, NULL, NULL, ZIO_FLAG_CANFAIL); in dbuf_read() 1380 err = dbuf_read_impl(db, zio, flags, dblt, FTAG); in dbuf_read() [all …]
|
H A D | mmp.c | 389 mmp_write_done(zio_t *zio) in mmp_write_done() argument 391 spa_t *spa = zio->io_spa; in mmp_write_done() 392 vdev_t *vd = zio->io_vd; in mmp_write_done() 393 mmp_thread_t *mts = zio->io_private; in mmp_write_done() 399 mmp_delay_update(spa, (zio->io_error == 0)); in mmp_write_done() 407 abd_free(zio->io_abd); in mmp_write_done() 519 zio_t *zio = zio_null(mmp->mmp_zio_root, spa, NULL, NULL, NULL, flags); in mmp_write_uberblock() local 532 vdev_label_write(zio, vd, label, ub_abd, offset, in mmp_write_uberblock() 542 zio_nowait(zio); in mmp_write_uberblock()
|
H A D | dmu.c | 556 zio_t *zio; in dmu_buf_hold_array_by_dnode() local 588 zio = zio_root(dn->dn_objset->os_spa, NULL, NULL, ZIO_FLAG_CANFAIL); in dmu_buf_hold_array_by_dnode() 595 zio_nowait(zio); in dmu_buf_hold_array_by_dnode() 601 (void) dbuf_read(db, zio, dbuf_flags); in dmu_buf_hold_array_by_dnode() 613 err = zio_wait(zio); in dmu_buf_hold_array_by_dnode() 1824 dmu_sync_ready(zio_t *zio, arc_buf_t *buf, void *varg) in dmu_sync_ready() argument 1828 blkptr_t *bp = zio->io_bp; in dmu_sync_ready() 1830 if (zio->io_error == 0) { in dmu_sync_ready() 1845 dmu_sync_late_arrival_ready(zio_t *zio) in dmu_sync_late_arrival_ready() argument 1847 dmu_sync_ready(zio, NULL, zio->io_private); in dmu_sync_late_arrival_ready() [all …]
|
H A D | vdev.c | 1351 vdev_probe_done(zio_t *zio) in vdev_probe_done() argument 1353 spa_t *spa = zio->io_spa; in vdev_probe_done() 1354 vdev_t *vd = zio->io_vd; in vdev_probe_done() 1355 vdev_probe_stats_t *vps = zio->io_private; in vdev_probe_done() 1359 if (zio->io_type == ZIO_TYPE_READ) { in vdev_probe_done() 1360 if (zio->io_error == 0) in vdev_probe_done() 1362 if (zio->io_error == 0 && spa_writeable(spa)) { in vdev_probe_done() 1364 zio->io_offset, zio->io_size, zio->io_abd, in vdev_probe_done() 1368 abd_free(zio->io_abd); in vdev_probe_done() 1370 } else if (zio->io_type == ZIO_TYPE_WRITE) { in vdev_probe_done() [all …]
|
H A D | dmu_tx.c | 191 dmu_tx_check_ioerr(zio_t *zio, dnode_t *dn, int level, uint64_t blkid) in dmu_tx_check_ioerr() argument 201 err = dbuf_read(db, zio, DB_RF_CANFAIL | DB_RF_NOPREFETCH); in dmu_tx_check_ioerr() 239 zio_t *zio = zio_root(dn->dn_objset->os_spa, in dmu_tx_count_write() local 245 err = dmu_tx_check_ioerr(zio, dn, 0, start); in dmu_tx_count_write() 255 err = dmu_tx_check_ioerr(zio, dn, 0, end); in dmu_tx_count_write() 266 err = dmu_tx_check_ioerr(zio, dn, 1, i); in dmu_tx_count_write() 273 err = zio_wait(zio); in dmu_tx_count_write() 409 zio_t *zio = zio_root(tx->tx_pool->dp_spa, in dmu_tx_hold_free_impl() local 419 (void) zio_wait(zio); in dmu_tx_hold_free_impl() 426 err = dmu_tx_check_ioerr(zio, dn, 1, i); in dmu_tx_hold_free_impl() [all …]
|
/illumos-gate/usr/src/uts/common/fs/zfs/sys/ |
H A D | zio.h | 216 #define ZIO_DDT_CHILD_FLAGS(zio) \ argument 217 (((zio)->io_flags & ZIO_FLAG_DDT_INHERIT) | \ 220 #define ZIO_GANG_CHILD_FLAGS(zio) \ argument 221 (((zio)->io_flags & ZIO_FLAG_GANG_INHERIT) | \ 224 #define ZIO_VDEV_CHILD_FLAGS(zio) \ argument 225 (((zio)->io_flags & ZIO_FLAG_VDEV_INHERIT) | \ 260 typedef void zio_done_func_t(zio_t *zio); 360 typedef void zio_vsd_cksum_report_f(zio_t *zio, zio_cksum_report_t *zcr, 375 typedef zio_t *zio_gang_issue_func_t(zio_t *zio, blkptr_t *bp, 378 typedef void zio_transform_func_t(zio_t *zio, struct abd *data, uint64_t size); [all …]
|
H A D | vdev.h | 106 extern void vdev_stat_update(zio_t *zio, uint64_t psize); 131 extern boolean_t vdev_accessible(vdev_t *vd, zio_t *zio); 136 extern boolean_t vdev_cache_read(zio_t *zio); 137 extern void vdev_cache_write(zio_t *zio); 142 extern zio_t *vdev_queue_io(zio_t *zio); 143 extern void vdev_queue_io_done(zio_t *zio); 144 extern void vdev_queue_change_io_priority(zio_t *zio, zio_priority_t priority); 181 extern void vdev_label_write(zio_t *zio, vdev_t *vd, int l, abd_t *buf, uint64_t
|
H A D | vdev_raidz.h | 35 struct zio; 44 struct raidz_map * vdev_raidz_map_alloc(struct zio *, uint64_t,
|
/illumos-gate/usr/src/cmd/raidz_test/ |
H A D | raidz_test.c | 242 init_zio_abd(zio_t *zio) in init_zio_abd() argument 244 (void) abd_iterate_func(zio->io_abd, 0, zio->io_size, init_rand, NULL); in init_zio_abd() 248 fini_raidz_map(zio_t **zio, raidz_map_t **rm) in fini_raidz_map() argument 251 raidz_free((*zio)->io_abd, (*zio)->io_size); in fini_raidz_map() 252 umem_free(*zio, sizeof (zio_t)); in fini_raidz_map() 254 *zio = NULL; in fini_raidz_map() 309 init_raidz_map(raidz_test_opts_t *opts, zio_t **zio, const int parity) in init_raidz_map() argument 316 VERIFY(zio); in init_raidz_map() 319 *zio = umem_zalloc(sizeof (zio_t), UMEM_NOFAIL); in init_raidz_map() 321 (*zio)->io_offset = 0; in init_raidz_map() [all …]
|
/illumos-gate/usr/src/grub/grub-0.97/stage2/zfs-include/ |
H A D | zio.h | 50 #define ZIO_GET_IOSIZE(zio) \ argument 51 (BP_IS_GANG((zio)->io_bp) ? \ 52 SPA_GANGBLOCKSIZE : BP_GET_PSIZE((zio)->io_bp))
|
/illumos-gate/usr/src/boot/libsa/zfs/ |
H A D | zfsimpl.c | 552 zio_t *zio = arg; in vdev_indirect_gather_splits() local 553 indirect_vsd_t *iv = zio->io_vsd; in vdev_indirect_gather_splits() 564 zio->io_error = ENOMEM; in vdev_indirect_gather_splits() 600 zio_t *zio = arg; in vdev_indirect_remap() local 609 zio->io_error = ENOMEM; in vdev_indirect_remap() 620 zio->io_error = ENOMEM; in vdev_indirect_remap() 641 zio->io_error = ENOMEM; in vdev_indirect_remap() 655 if (zio->io_error != 0) in vdev_indirect_remap() 664 if (zio->io_error != 0) in vdev_indirect_remap() 672 vdev_indirect_map_free(zio_t *zio) in vdev_indirect_map_free() argument [all …]
|