Lines Matching defs:spa

31 #include <sys/spa.h>
75 * The following actions directly effect the spa's sync-to-convergence logic.
499 zio_create(zio_t *pio, spa_t *spa, uint64_t txg, const blkptr_t *bp,
511 ASSERT(!vd || spa_config_held(spa, SCL_STATE_ALL, RW_READER));
548 zio->io_spa = spa;
590 zio_null(zio_t *pio, spa_t *spa, vdev_t *vd, zio_done_func_t *done,
595 zio = zio_create(pio, spa, 0, NULL, NULL, 0, done, private,
603 zio_root(spa_t *spa, zio_done_func_t *done, void *private, enum zio_flag flags)
605 return (zio_null(NULL, spa, NULL, done, private, flags));
609 zfs_blkptr_verify(spa_t *spa, const blkptr_t *bp)
651 if (vdevid >= spa->spa_root_vdev->vdev_children) {
657 vdev_t *vd = spa->spa_root_vdev->vdev_child[vdevid];
691 zio_read(zio_t *pio, spa_t *spa, const blkptr_t *bp,
697 zfs_blkptr_verify(spa, bp);
699 zio = zio_create(pio, spa, BP_PHYSICAL_BIRTH(bp), bp,
709 zio_write(zio_t *pio, spa_t *spa, uint64_t txg, blkptr_t *bp,
724 zp->zp_copies <= spa_max_replication(spa));
726 zio = zio_create(pio, spa, txg, bp, data, size, done, private,
749 zio_rewrite(zio_t *pio, spa_t *spa, uint64_t txg, blkptr_t *bp, void *data,
755 zio = zio_create(pio, spa, txg, bp, data, size, done, private,
782 zio_free(spa_t *spa, uint64_t txg, const blkptr_t *bp)
792 metaslab_check_free(spa, bp);
801 txg != spa->spa_syncing_txg ||
802 spa_sync_pass(spa) >= zfs_sync_pass_deferred_free) {
803 bplist_append(&spa->spa_free_bplist[txg & TXG_MASK], bp);
805 VERIFY0(zio_wait(zio_free_sync(NULL, spa, txg, bp, 0)));
810 zio_free_sync(zio_t *pio, spa_t *spa, uint64_t txg, const blkptr_t *bp,
817 ASSERT(spa_syncing_txg(spa) == txg);
818 ASSERT(spa_sync_pass(spa) < zfs_sync_pass_deferred_free);
821 return (zio_null(pio, spa, NULL, NULL, NULL, 0));
823 metaslab_check_free(spa, bp);
824 arc_freed(spa, bp);
834 zio = zio_create(pio, spa, txg, bp, NULL, BP_GET_PSIZE(bp),
842 zio_claim(zio_t *pio, spa_t *spa, uint64_t txg, const blkptr_t *bp,
850 return (zio_null(pio, spa, NULL, NULL, NULL, 0));
864 ASSERT3U(spa->spa_uberblock.ub_rootbp.blk_birth, <, spa_first_txg(spa));
865 ASSERT(txg == spa_first_txg(spa) || txg == 0);
866 ASSERT(!BP_GET_DEDUP(bp) || !spa_writeable(spa)); /* zdb(1M) */
868 zio = zio_create(pio, spa, txg, bp, NULL, BP_GET_PSIZE(bp),
876 zio_ioctl(zio_t *pio, spa_t *spa, vdev_t *vd, int cmd,
883 zio = zio_create(pio, spa, 0, NULL, NULL, 0, done, private,
889 zio = zio_null(pio, spa, NULL, NULL, NULL, flags);
892 zio_nowait(zio_ioctl(zio, spa, vd->vdev_child[c], cmd,
1087 spa_t *spa = zio->io_spa;
1157 pass = spa_sync_pass(spa);
1159 ASSERT(zio->io_txg == spa_syncing_txg(spa));
1168 spa_max_replication(spa)) == BP_GET_NDVAS(bp));
1179 spa_feature_is_enabled(spa, SPA_FEATURE_EMBEDDED_DATA)) {
1188 ASSERT(spa_feature_is_active(spa,
1200 ASSERT3U(spa->spa_min_ashift, >=, SPA_MINBLOCKSHIFT);
1202 1ULL << spa->spa_min_ashift);
1238 spa_feature_is_active(spa, SPA_FEATURE_HOLE_BIRTH)) {
1292 spa_t *spa = zio->io_spa;
1315 spa->spa_zio_taskq[t][q + 1].stqs_count != 0)
1326 spa_taskq_dispatch_ent(spa, t, q, (task_func_t *)zio_execute, zio,
1334 spa_t *spa = zio->io_spa;
1337 spa_taskqs_t *tqs = &spa->spa_zio_taskq[t][q];
1519 spa_t *spa = zio->io_spa;
1521 zio_add_child(spa->spa_async_zio_root[CPU_SEQID], zio);
1583 zio_suspend(spa_t *spa, zio_t *zio)
1585 if (spa_get_failmode(spa) == ZIO_FAILURE_MODE_PANIC)
1588 "is set to panic.", spa_name(spa));
1590 zfs_ereport_post(FM_EREPORT_ZFS_IO_FAILURE, spa, NULL, NULL, 0, 0);
1592 mutex_enter(&spa->spa_suspend_lock);
1594 if (spa->spa_suspend_zio_root == NULL)
1595 spa->spa_suspend_zio_root = zio_root(spa, NULL, NULL,
1599 spa->spa_suspended = B_TRUE;
1603 ASSERT(zio != spa->spa_suspend_zio_root);
1607 zio_add_child(spa->spa_suspend_zio_root, zio);
1610 mutex_exit(&spa->spa_suspend_lock);
1614 zio_resume(spa_t *spa)
1621 mutex_enter(&spa->spa_suspend_lock);
1622 spa->spa_suspended = B_FALSE;
1623 cv_broadcast(&spa->spa_suspend_cv);
1624 pio = spa->spa_suspend_zio_root;
1625 spa->spa_suspend_zio_root = NULL;
1626 mutex_exit(&spa->spa_suspend_lock);
1636 zio_resume_wait(spa_t *spa)
1638 mutex_enter(&spa->spa_suspend_lock);
1639 while (spa_suspended(spa))
1640 cv_wait(&spa->spa_suspend_cv, &spa->spa_suspend_lock);
1641 mutex_exit(&spa->spa_suspend_lock);
1972 spa_t *spa = pio->io_spa;
1982 int gbh_copies = MIN(copies + 1, spa_max_replication(spa));
1986 error = metaslab_alloc(spa, spa_normal_class(spa), SPA_GANGBLOCKSIZE,
2008 zio = zio_rewrite(pio, spa, txg, bp, gbh, SPA_GANGBLOCKSIZE, NULL, NULL,
2028 zio_nowait(zio_write(zio, spa, txg, &gbh->zg_blkptr[g],
2221 spa_t *spa = zio->io_spa;
2252 error = arc_read(NULL, spa, &blk,
2353 spa_t *spa = zio->io_spa;
2361 ddt_t *ddt = ddt_select(spa, bp);
2382 zp->zp_checksum = spa_dedup_checksum(spa);
2420 dio = zio_write(zio, spa, txg, bp, zio->io_orig_data,
2442 cio = zio_write(zio, spa, txg, bp, zio->io_orig_data,
2466 spa_t *spa = zio->io_spa;
2468 ddt_t *ddt = ddt_select(spa, bp);
2492 spa_t *spa = zio->io_spa;
2493 metaslab_class_t *mc = spa_normal_class(spa);
2506 ASSERT3U(zio->io_prop.zp_copies, <=, spa_max_replication(spa));
2517 error = metaslab_alloc(spa, mc, zio->io_size, bp,
2521 spa_dbgmsg(spa, "%s: metaslab allocation failure: zio %p, "
2522 "size %llu, error %d", spa_name(spa), zio, zio->io_size,
2578 zio_alloc_zil(spa_t *spa, uint64_t txg, blkptr_t *new_bp, blkptr_t *old_bp,
2583 ASSERT(txg > spa_syncing_txg(spa));
2591 error = metaslab_alloc(spa, spa_log_class(spa), size,
2597 error = metaslab_alloc(spa, spa_normal_class(spa), size,
2607 spa_version(spa) >= SPA_VERSION_SLIM_ZIL
2622 zio_free_zil(spa_t *spa, uint64_t txg, blkptr_t *bp)
2627 zio_free(spa, txg, bp);
2652 spa_t *spa = zio->io_spa;
2659 spa_config_enter(spa, SCL_ZIO, zio, RW_READER);
2681 zio->io_txg != spa_syncing_txg(spa)) {
2682 uint64_t old = spa->spa_last_io;
2685 (void) atomic_cas_64(&spa->spa_last_io, old, new);
2719 VERIFY(zio->io_type != ZIO_TYPE_WRITE || spa_writeable(spa));
3100 spa_t *spa = zio->io_spa;
3182 zfs_ereport_post(FM_EREPORT_ZFS_IO, spa, vd, zio, 0, 0);
3191 spa_log_error(spa, zio);
3192 zfs_ereport_post(FM_EREPORT_ZFS_DATA, spa, NULL, zio,
3217 spa_load_state(spa) == SPA_LOAD_NONE &&
3218 spa_get_failmode(spa) != ZIO_FAILURE_MODE_CONTINUE)
3309 zio_suspend(spa, zio);
3316 spa_taskq_dispatch_ent(spa, ZIO_TYPE_CLAIM,