/freebsd/sys/contrib/openzfs/module/zfs/ |
H A D | zio.c | 133 #define IO_IS_ALLOCATING(zio) ((zio)->io_orig_pipeline & ZIO_STAGE_DVA_ALLOCATE) argument 148 static inline void __zio_execute(zio_t *zio); 435 zio_push_transform(zio_t *zio, abd_t *data, uint64_t size, uint64_t bufsize, in zio_push_transform() argument 440 zt->zt_orig_abd = zio->io_abd; in zio_push_transform() 441 zt->zt_orig_size = zio->io_size; in zio_push_transform() 445 zt->zt_next = zio->io_transform_stack; in zio_push_transform() 446 zio->io_transform_stack = zt; in zio_push_transform() 448 zio->io_abd = data; in zio_push_transform() 449 zio->io_size = size; in zio_push_transform() 453 zio_pop_transforms(zio_t *zio) in zio_pop_transforms() argument [all …]
|
H A D | vdev_queue.c | 272 vdev_queue_class_add(vdev_queue_t *vq, zio_t *zio) in vdev_queue_class_add() argument 274 zio_priority_t p = zio->io_priority; in vdev_queue_class_add() 277 list_insert_tail(&vq->vq_class[p].vqc_list, zio); in vdev_queue_class_add() 281 avl_add(&vq->vq_class[p].vqc_tree, zio); in vdev_queue_class_add() 285 vdev_queue_class_remove(vdev_queue_t *vq, zio_t *zio) in vdev_queue_class_remove() argument 287 zio_priority_t p = zio->io_priority; in vdev_queue_class_remove() 291 list_remove(list, zio); in vdev_queue_class_remove() 296 avl_remove(tree, zio); in vdev_queue_class_remove() 487 offsetof(struct zio, io_queue_node.l)); in vdev_queue_init() 491 offsetof(struct zio, io_queue_node.a)); in vdev_queue_init() [all …]
|
H A D | vdev_mirror.c | 170 vdev_mirror_map_free(zio_t *zio) in vdev_mirror_map_free() argument 172 mirror_map_t *mm = zio->io_vsd; in vdev_mirror_map_free() 265 vdev_mirror_map_init(zio_t *zio) in vdev_mirror_map_init() argument 269 vdev_t *vd = zio->io_vd; in vdev_mirror_map_init() 273 dva_t *dva = zio->io_bp->blk_dva; in vdev_mirror_map_init() 274 spa_t *spa = zio->io_spa; in vdev_mirror_map_init() 293 if ((zio->io_flags & ZIO_FLAG_SCRUB) && in vdev_mirror_map_init() 294 !(zio->io_flags & ZIO_FLAG_IO_RETRY) && in vdev_mirror_map_init() 299 c = BP_GET_NDVAS(zio->io_bp); in vdev_mirror_map_init() 308 ASSERT3U(zio->io_type, ==, ZIO_TYPE_READ); in vdev_mirror_map_init() [all …]
|
H A D | zio_inject.c | 46 #include <sys/zio.h> 239 zio_match_dva(zio_t *zio) in zio_match_dva() 243 if (zio->io_bp != NULL && zio->io_vd != NULL && in zio_match_dva() 244 zio->io_child_type == ZIO_CHILD_VDEV) { in zio_match_dva() 245 for (i = BP_GET_NDVAS(zio->io_bp) - 1; i >= 0; i--) { 246 dva_t *dva = &zio->io_bp->blk_dva[i]; 248 vdev_t *vd = vdev_lookup_top(zio->io_spa, 252 if (zio->io_vd->vdev_ops->vdev_op_leaf) in zio_handle_fault_injection() argument 255 if (zio in zio_handle_fault_injection() 222 zio_match_dva(zio_t * zio) zio_match_dva() argument 304 zio_handle_label_injection(zio_t * zio,int error) zio_handle_label_injection() argument 348 zio_t *zio = private; zio_inject_bitflip_cb() local 361 zio_handle_device_injection_impl(vdev_t * vd,zio_t * zio,int err1,int err2) zio_handle_device_injection_impl() argument 454 zio_handle_device_injection(vdev_t * vd,zio_t * zio,int error) zio_handle_device_injection() argument 460 zio_handle_device_injections(vdev_t * vd,zio_t * zio,int err1,int err2) zio_handle_device_injections() argument 470 zio_handle_ignored_writes(zio_t * zio) zio_handle_ignored_writes() argument 540 zio_handle_io_delay(zio_t * zio) zio_handle_io_delay() argument [all...] |
H A D | vdev_indirect.c | 292 vdev_indirect_map_free(zio_t *zio) in vdev_indirect_map_free() argument 294 indirect_vsd_t *iv = zio->io_vsd; in vdev_indirect_map_free() 1180 vdev_indirect_child_io_done(zio_t *zio) in vdev_indirect_child_io_done() argument 1182 zio_t *pio = zio->io_private; in vdev_indirect_child_io_done() 1185 pio->io_error = zio_worst_error(pio->io_error, zio->io_error); in vdev_indirect_child_io_done() 1188 abd_free(zio->io_abd); in vdev_indirect_child_io_done() 1199 zio_t *zio = arg; in vdev_indirect_gather_splits() local 1200 indirect_vsd_t *iv = zio->io_vsd; in vdev_indirect_gather_splits() 1241 vdev_indirect_read_split_done(zio_t *zio) in vdev_indirect_read_split_done() argument 1243 indirect_child_t *ic = zio->io_private; in vdev_indirect_read_split_done() [all …]
|
H A D | vdev_draid.c | 650 vdev_draid_map_alloc_write(zio_t *zio, uint64_t abd_offset, raidz_row_t *rr) in vdev_draid_map_alloc_write() argument 652 uint64_t skip_size = 1ULL << zio->io_vd->vdev_top->vdev_ashift; in vdev_draid_map_alloc_write() 656 ASSERT3U(zio->io_type, ==, ZIO_TYPE_WRITE); in vdev_draid_map_alloc_write() 669 zio->io_abd, abd_off, rc->rc_size); in vdev_draid_map_alloc_write() 675 zio->io_abd, abd_off, rc->rc_size), B_TRUE); in vdev_draid_map_alloc_write() 686 IMPLY(abd_offset != 0, abd_off == zio->io_size); in vdev_draid_map_alloc_write() 697 vdev_draid_map_alloc_scrub(zio_t *zio, uint64_t abd_offset, raidz_row_t *rr) in vdev_draid_map_alloc_scrub() argument 699 uint64_t skip_size = 1ULL << zio->io_vd->vdev_top->vdev_ashift; in vdev_draid_map_alloc_scrub() 704 ASSERT3U(zio->io_type, ==, ZIO_TYPE_READ); in vdev_draid_map_alloc_scrub() 725 zio->io_abd, abd_off, rc->rc_size); in vdev_draid_map_alloc_scrub() [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() 794 zio_t *zio[VDEV_LABELS]; in vdev_label_read_config() local 822 zio[l] = zio_root(spa, NULL, NULL, flags); in vdev_label_read_config() [all …]
|
H A D | vdev_raidz.c | 419 vdev_raidz_map_free_vsd(zio_t *zio) in vdev_raidz_map_free_vsd() argument 421 raidz_map_t *rm = zio->io_vsd; in vdev_raidz_map_free_vsd() 440 vdev_raidz_row_alloc(int cols, zio_t *zio) in vdev_raidz_row_alloc() argument 461 if (!(zio->io_flags & ZIO_FLAG_DIO_READ)) in vdev_raidz_row_alloc() 468 vdev_raidz_map_alloc_write(zio_t *zio, raidz_map_t *rm, uint64_t ashift) in vdev_raidz_map_alloc_write() argument 475 ASSERT3U(zio->io_type, ==, ZIO_TYPE_WRITE); in vdev_raidz_map_alloc_write() 522 zio->io_abd, off, rc->rc_size); in vdev_raidz_map_alloc_write() 550 ASSERT3U(off, ==, zio->io_size); in vdev_raidz_map_alloc_write() 555 vdev_raidz_map_alloc_read(zio_t *zio, raidz_map_t *rm) in vdev_raidz_map_alloc_read() argument 570 zio->io_abd, off, rc->rc_size); in vdev_raidz_map_alloc_read() [all …]
|
H A D | zfs_fm.c | 338 const zbookmark_phys_t *zb, zio_t *zio, uint64_t offset, uint64_t size) in zfs_ereport_is_duplicate() argument 342 if (vd == NULL || zio == NULL) in zfs_ereport_is_duplicate() 359 search.re_io_error = zio->io_error; in zfs_ereport_is_duplicate() 360 search.re_io_priority = zio->io_priority; in zfs_ereport_is_duplicate() 366 search.re_io_size = zio->io_size; in zfs_ereport_is_duplicate() 367 search.re_io_offset = zio->io_offset; in zfs_ereport_is_duplicate() 472 zio_t *zio, uint64_t stateoroffset, uint64_t size) in zfs_ereport_start() argument 501 } else if (zio != NULL && zio->io_logical != NULL) { in zfs_ereport_start() 502 if (zio->io_logical->io_ena == 0) in zfs_ereport_start() 503 zio->io_logical->io_ena = in zfs_ereport_start() [all …]
|
H A D | dmu_direct.c | 76 dmu_read_abd_done(zio_t *zio) in dmu_read_abd_done() argument 78 abd_free(zio->io_abd); in dmu_read_abd_done() 82 dmu_write_direct_ready(zio_t *zio) in dmu_write_direct_ready() argument 84 dmu_sync_ready(zio, NULL, zio->io_private); in dmu_write_direct_ready() 88 dmu_write_direct_done(zio_t *zio) in dmu_write_direct_done() argument 90 dmu_sync_arg_t *dsa = zio->io_private; in dmu_write_direct_done() 94 abd_free(zio->io_abd); in dmu_write_direct_done() 103 dmu_sync_done(zio, NULL, zio->io_private); in dmu_write_direct_done() 105 if (zio->io_error != 0) { in dmu_write_direct_done() 106 if (zio->io_flags & ZIO_FLAG_DIO_CHKSUM_ERR) in dmu_write_direct_done() [all …]
|
H A D | vdev_missing.c | 70 vdev_missing_io_start(zio_t *zio) in vdev_missing_io_start() argument 72 zio->io_error = SET_ERROR(ENOTSUP); in vdev_missing_io_start() 73 zio_execute(zio); in vdev_missing_io_start() 77 vdev_missing_io_done(zio_t *zio) in vdev_missing_io_done() argument 79 (void) zio; in vdev_missing_io_done()
|
H A D | zio_checksum.c | 346 zio_checksum_compute(zio_t *zio, enum zio_checksum checksum, in zio_checksum_compute() argument 350 blkptr_t *bp = zio->io_bp; in zio_checksum_compute() 351 uint64_t offset = zio->io_offset; in zio_checksum_compute() 354 spa_t *spa = zio->io_spa; in zio_checksum_compute() 541 zio_checksum_error(zio_t *zio, zio_bad_cksum_t *info) in zio_checksum_error() argument 543 blkptr_t *bp = zio->io_bp; in zio_checksum_error() 544 uint_t checksum = (bp == NULL ? zio->io_prop.zp_checksum : in zio_checksum_error() 547 uint64_t size = (bp == NULL ? zio->io_size : in zio_checksum_error() 549 uint64_t offset = zio->io_offset; in zio_checksum_error() 550 abd_t *data = zio->io_abd; in zio_checksum_error() [all …]
|
H A D | arc.c | 981 static void l2arc_log_blk_fetch_abort(zio_t *zio); 1000 static void l2arc_blk_fetch_done(zio_t *zio); 1474 arc_cksum_is_equal(arc_buf_hdr_t *hdr, zio_t *zio) in arc_cksum_is_equal() argument 1476 ASSERT(!BP_IS_EMBEDDED(zio->io_bp)); in arc_cksum_is_equal() 1477 VERIFY3U(BP_GET_PSIZE(zio->io_bp), ==, HDR_GET_PSIZE(hdr)); in arc_cksum_is_equal() 1492 return (zio_checksum_error_impl(zio->io_spa, zio->io_bp, in arc_cksum_is_equal() 1493 BP_GET_CHECKSUM(zio->io_bp), zio->io_abd, zio->io_size, in arc_cksum_is_equal() 1494 zio->io_offset, NULL) == 0); in arc_cksum_is_equal() 5342 arc_bcopy_func(zio_t *zio, const zbookmark_phys_t *zb, const blkptr_t *bp, in arc_bcopy_func() argument 5345 (void) zio, (void) zb, (void) bp; in arc_bcopy_func() [all …]
|
H A D | mmp.c | 390 mmp_write_done(zio_t *zio) in mmp_write_done() argument 392 spa_t *spa = zio->io_spa; in mmp_write_done() 393 vdev_t *vd = zio->io_vd; in mmp_write_done() 394 mmp_thread_t *mts = zio->io_private; in mmp_write_done() 400 mmp_delay_update(spa, (zio->io_error == 0)); in mmp_write_done() 408 spa_mmp_history_set(spa, mmp_kstat_id, zio->io_error, in mmp_write_done() 411 abd_free(zio->io_abd); in mmp_write_done() 518 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() 539 zio_nowait(zio); in mmp_write_uberblock()
|
/freebsd/sys/fs/tarfs/ |
H A D | tarfs_io.c | 58 SYSCTL_NODE(_vfs_tarfs, OID_AUTO, zio, CTLFLAG_RD, 0, 229 tarfs_zio_update_index(struct tarfs_zio *zio, off_t i, off_t o) in tarfs_zio_update_index() argument 232 if (++zio->curidx >= zio->nidx) { in tarfs_zio_update_index() 233 if (++zio->nidx > zio->szidx) { in tarfs_zio_update_index() 234 zio->szidx *= 2; in tarfs_zio_update_index() 235 zio->idx = realloc(zio->idx, in tarfs_zio_update_index() 236 zio->szidx * sizeof(*zio->idx), in tarfs_zio_update_index() 240 zio->idx[zio->curidx].i = i; in tarfs_zio_update_index() 241 zio->idx[zio->curidx].o = o; in tarfs_zio_update_index() 243 zio->curidx, (size_t)zio->idx[zio->curidx].i, in tarfs_zio_update_index() [all …]
|
/freebsd/sys/contrib/openzfs/module/os/freebsd/zfs/ |
H A D | vdev_file.c | 204 vdev_file_io_intr(zio_t *zio) in vdev_file_io_intr() argument 206 zio_delay_interrupt(zio); in vdev_file_io_intr() 212 zio_t *zio = arg; in vdev_file_io_strategy() local 213 vdev_t *vd = zio->io_vd; in vdev_file_io_strategy() 221 off = zio->io_offset; in vdev_file_io_strategy() 222 size = zio->io_size; in vdev_file_io_strategy() 227 ASSERT(zio->io_type == ZIO_TYPE_READ || zio->io_type == ZIO_TYPE_WRITE); in vdev_file_io_strategy() 228 if (zio->io_type == ZIO_TYPE_READ) { in vdev_file_io_strategy() 229 buf = abd_borrow_buf(zio->io_abd, zio->io_size); in vdev_file_io_strategy() 231 abd_return_buf_copy(zio->io_abd, buf, size); in vdev_file_io_strategy() [all …]
|
H A D | vdev_geom.c | 1008 zio_t *zio; in vdev_geom_io_intr() local 1010 zio = bp->bio_caller1; in vdev_geom_io_intr() 1011 vd = zio->io_vd; in vdev_geom_io_intr() 1012 zio->io_error = bp->bio_error; in vdev_geom_io_intr() 1013 if (zio->io_error == 0 && bp->bio_resid != 0) in vdev_geom_io_intr() 1014 zio->io_error = SET_ERROR(EIO); in vdev_geom_io_intr() 1016 switch (zio->io_error) { in vdev_geom_io_intr() 1025 spa_async_request(zio->io_spa, in vdev_geom_io_intr() 1039 if (zio->io_type != ZIO_TYPE_READ && zio->io_type != ZIO_TYPE_WRITE) { in vdev_geom_io_intr() 1041 zio->io_bio = NULL; in vdev_geom_io_intr() [all …]
|
H A D | vdev_label_os.c | 42 zio_t *zio; in vdev_label_write_pad2() local 62 zio = zio_root(spa, NULL, NULL, flags); in vdev_label_write_pad2() 63 vdev_label_write(zio, vd, 0, pad2, in vdev_label_write_pad2() 66 error = zio_wait(zio); in vdev_label_write_pad2() 77 vdev_child_done(zio_t *zio) in vdev_child_done() argument 79 zio_t *pio = zio->io_private; in vdev_child_done() 82 pio->io_error = zio_worst_error(pio->io_error, zio->io_error); in vdev_child_done()
|
/freebsd/sys/contrib/openzfs/module/os/linux/zfs/ |
H A D | vdev_file.c | 201 zio_t *zio = (zio_t *)arg; in vdev_file_io_strategy() local 202 vdev_t *vd = zio->io_vd; in vdev_file_io_strategy() 210 off = zio->io_offset; in vdev_file_io_strategy() 211 size = zio->io_size; in vdev_file_io_strategy() 214 if (zio->io_type == ZIO_TYPE_READ) { in vdev_file_io_strategy() 215 buf = abd_borrow_buf(zio->io_abd, zio->io_size); in vdev_file_io_strategy() 217 abd_return_buf_copy(zio->io_abd, buf, size); in vdev_file_io_strategy() 219 buf = abd_borrow_buf_copy(zio->io_abd, zio->io_size); in vdev_file_io_strategy() 221 abd_return_buf(zio->io_abd, buf, size); in vdev_file_io_strategy() 223 zio->io_error = err; in vdev_file_io_strategy() [all …]
|
H A D | vdev_disk.c | 226 vdev_disk_error(zio_t *zio) in vdev_disk_error() argument 234 "offset=%llu size=%llu flags=%llu\n", spa_name(zio->io_spa), in vdev_disk_error() 235 zio->io_vd->vdev_path, zio->io_error, zio->io_type, in vdev_disk_error() 236 (u_longlong_t)zio->io_offset, (u_longlong_t)zio->io_size, in vdev_disk_error() 237 zio->io_flags); in vdev_disk_error() 672 vbio_alloc(zio_t *zio, struct block_device *bdev, int flags) in vbio_alloc() argument 676 vbio->vbio_zio = zio; in vbio_alloc() 682 vbio->vbio_offset = zio->io_offset; in vbio_alloc() 789 zio_t *zio = vbio->vbio_zio; in vbio_completion() local 791 ASSERT(zio); in vbio_completion() [all …]
|
/freebsd/sys/contrib/openzfs/include/os/linux/zfs/sys/ |
H A D | trace_common.h | 62 __entry->zio_type = zio->io_type; \ 63 __entry->zio_priority = zio->io_priority; \ 64 __entry->zio_size = zio->io_size; \ 65 __entry->zio_orig_size = zio->io_orig_size; \ 66 __entry->zio_offset = zio->io_offset; \ 67 __entry->zio_timestamp = zio->io_timestamp; \ 68 __entry->zio_delta = zio->io_delta; \ 69 __entry->zio_delay = zio->io_delay; \ 70 __entry->zio_flags = zio->io_flags; \ 71 __entry->zio_stage = zio [all...] |
H A D | trace_zio.h | 42 TP_PROTO(zio_t *zio, hrtime_t now), 43 TP_ARGS(zio, now), 57 TP_PROTO(zio_t *zio, hrtime_t now, hrtime_t diff), 58 TP_ARGS(zio, now, diff), 74 TP_PROTO(zio_t *zio), 75 TP_ARGS(zio),
|
H A D | trace_dbuf.h | 101 TP_PROTO(dmu_buf_impl_t *db, zio_t *zio), 102 TP_ARGS(db, zio), 119 TP_PROTO(dmu_buf_impl_t *db, zio_t *zio), \ 120 TP_ARGS(db, zio))
|
/freebsd/sys/contrib/openzfs/include/sys/ |
H A D | zio.h | 232 #define ZIO_HAS_ALLOCATOR(zio) ((zio)->io_allocator != ZIO_ALLOCATOR_NONE) argument 237 #define ZIO_DDT_CHILD_FLAGS(zio) \ argument 238 (((zio)->io_flags & ZIO_FLAG_DDT_INHERIT) | \ 241 #define ZIO_GANG_CHILD_FLAGS(zio) \ argument 242 (((zio)->io_flags & ZIO_FLAG_GANG_INHERIT) | \ 245 #define ZIO_VDEV_CHILD_FLAGS(zio) \ argument 246 (((zio)->io_flags & ZIO_FLAG_VDEV_INHERIT) | \ 274 typedef void zio_done_func_t(zio_t *zio); 403 typedef zio_t *zio_gang_issue_func_t(zio_t *zio, blkptr_t *bp, 406 typedef void zio_transform_func_t(zio_t *zio, struct abd *data, uint64_t size); [all …]
|
/freebsd/sys/contrib/openzfs/cmd/raidz_test/ |
H A D | raidz_test.c | 286 init_zio_abd(zio_t *zio) in init_zio_abd() argument 288 abd_iterate_func(zio->io_abd, 0, zio->io_size, init_rand, NULL); in init_zio_abd() 292 fini_raidz_map(zio_t **zio, raidz_map_t **rm) in fini_raidz_map() argument 295 raidz_free((*zio)->io_abd, (*zio)->io_size); in fini_raidz_map() 296 umem_free(*zio, sizeof (zio_t)); in fini_raidz_map() 298 *zio = NULL; in fini_raidz_map() 363 init_raidz_map(raidz_test_opts_t *opts, zio_t **zio, const int parity) in init_raidz_map() argument 370 VERIFY(zio); in init_raidz_map() 373 *zio = umem_zalloc(sizeof (zio_t), UMEM_NOFAIL); in init_raidz_map() 375 (*zio)->io_offset = 0; in init_raidz_map() [all …]
|