| /freebsd/sys/contrib/openzfs/module/zfs/ |
| H A D | spa.c | 189 static boolean_t spa_has_active_shared_spare(spa_t *spa); 190 static int spa_load_impl(spa_t *spa, spa_import_type_t type, 192 static void spa_vdev_resilver_done(spa_t *spa); 370 spa_prop_add(spa_t *spa, const char *propname, nvlist_t *outnvl) in spa_prop_add() argument 383 err = ddt_get_pool_dedup_cached(spa, &intval); in spa_prop_add() 397 spa_prop_get_nvlist(spa_t *spa, char **props, unsigned int n_props, in spa_prop_get_nvlist() argument 406 err = spa_prop_add(spa, props[i], outnvl); in spa_prop_get_nvlist() 470 spa_prop_get_config(spa_t *spa, nvlist_t *nv) in spa_prop_get_config() argument 472 vdev_t *rvd = spa->spa_root_vdev; in spa_prop_get_config() 473 dsl_pool_t *pool = spa->spa_dsl_pool; in spa_prop_get_config() [all …]
|
| H A D | spa_misc.c | 398 spa_load_failed(spa_t *spa, const char *fmt, ...) in spa_load_failed() argument 407 zfs_dbgmsg("spa_load(%s, config %s): FAILED: %s", spa_load_name(spa), in spa_load_failed() 408 spa->spa_trust_config ? "trusted" : "untrusted", buf); in spa_load_failed() 412 spa_load_note(spa_t *spa, const char *fmt, ...) in spa_load_note() argument 421 zfs_dbgmsg("spa_load(%s, config %s): %s", spa_load_name(spa), in spa_load_note() 422 spa->spa_trust_config ? "trusted" : "untrusted", buf); in spa_load_note() 424 spa_import_progress_set_notes_nolog(spa, "%s", buf); in spa_load_note() 446 spa_config_lock_init(spa_t *spa) in spa_config_lock_init() argument 449 spa_config_lock_t *scl = &spa->spa_config_lock[i]; in spa_config_lock_init() 459 spa_config_lock_destroy(spa_t *spa) in spa_config_lock_destroy() argument [all …]
|
| H A D | spa_log_spacemap.c | 307 spa_estimate_incoming_log_blocks(spa_t *spa) in spa_estimate_incoming_log_blocks() argument 309 ASSERT3U(spa_sync_pass(spa), ==, 1); in spa_estimate_incoming_log_blocks() 311 for (spa_log_sm_t *sls = avl_last(&spa->spa_sm_logs_by_txg); in spa_estimate_incoming_log_blocks() 313 sls = AVL_PREV(&spa->spa_sm_logs_by_txg, sls)) { in spa_estimate_incoming_log_blocks() 314 if (sls->sls_txg == spa_syncing_txg(spa)) { in spa_estimate_incoming_log_blocks() 328 spa_log_sm_blocklimit(spa_t *spa) in spa_log_sm_blocklimit() argument 330 return (spa->spa_unflushed_stats.sus_blocklimit); in spa_log_sm_blocklimit() 334 spa_log_sm_set_blocklimit(spa_t *spa) in spa_log_sm_set_blocklimit() argument 336 if (!spa_feature_is_active(spa, SPA_FEATURE_LOG_SPACEMAP)) { in spa_log_sm_set_blocklimit() 337 ASSERT0(spa_log_sm_blocklimit(spa)); in spa_log_sm_set_blocklimit() [all …]
|
| H A D | zfeature.c | 165 spa_features_check(spa_t *spa, boolean_t for_write, in spa_features_check() argument 168 objset_t *os = spa->spa_meta_objset; in spa_features_check() 173 spa->spa_feat_for_write_obj : spa->spa_feat_for_read_obj; in spa_features_check() 199 if (zap_lookup(os, spa->spa_feat_desc_obj, in spa_features_check() 225 feature_get_refcount(spa_t *spa, zfeature_info_t *feature, uint64_t *res) in feature_get_refcount() argument 228 if (spa->spa_feat_refcount_cache[feature->fi_feature] == in feature_get_refcount() 232 *res = spa->spa_feat_refcount_cache[feature->fi_feature]; in feature_get_refcount() 242 feature_get_refcount_from_disk(spa_t *spa, zfeature_info_t *feature, in feature_get_refcount_from_disk() argument 248 spa->spa_feat_for_write_obj : spa->spa_feat_for_read_obj; in feature_get_refcount_from_disk() 257 err = zap_lookup(spa->spa_meta_objset, zapobj, in feature_get_refcount_from_disk() [all …]
|
| H A D | spa_errlog.c | 152 static int get_head_ds(spa_t *spa, uint64_t dsobj, uint64_t *head_ds) in get_head_ds() argument 155 int error = dsl_dataset_hold_obj_flags(spa->spa_dsl_pool, in get_head_ds() 174 spa_log_error(spa_t *spa, const zbookmark_phys_t *zb, const uint64_t birth) in spa_log_error() argument 185 if (spa_load_state(spa) == SPA_LOAD_TRYIMPORT) in spa_log_error() 188 mutex_enter(&spa->spa_errlist_lock); in spa_log_error() 194 if (spa->spa_scrub_active || spa->spa_scrub_finished) in spa_log_error() 195 tree = &spa->spa_errlist_scrub; in spa_log_error() 197 tree = &spa->spa_errlist_last; in spa_log_error() 201 mutex_exit(&spa->spa_errlist_lock); in spa_log_error() 213 if (spa_feature_is_enabled(spa, SPA_FEATURE_HEAD_ERRLOG)) { in spa_log_error() [all …]
|
| H A D | spa_config.c | 167 spa_t *spa = NULL; in spa_write_cachefile() local 175 while ((spa = spa_next(spa)) != NULL) { in spa_write_cachefile() 183 if ((spa == target && removing) || in spa_write_cachefile() 184 !spa_writeable(spa)) in spa_write_cachefile() 187 mutex_enter(&spa->spa_props_lock); in spa_write_cachefile() 188 tdp = list_head(&spa->spa_config_list); in spa_write_cachefile() 189 if (spa->spa_config == NULL || in spa_write_cachefile() 193 mutex_exit(&spa->spa_props_lock); in spa_write_cachefile() 200 if (spa->spa_import_flags & ZFS_IMPORT_TEMP_NAME) in spa_write_cachefile() 202 spa->spa_config, ZPOOL_CONFIG_POOL_NAME); in spa_write_cachefile() [all …]
|
| H A D | spa_checkpoint.c | 155 spa_checkpoint_get_stats(spa_t *spa, pool_checkpoint_stat_t *pcs) in spa_checkpoint_get_stats() argument 157 if (!spa_feature_is_active(spa, SPA_FEATURE_POOL_CHECKPOINT)) in spa_checkpoint_get_stats() 162 int error = zap_contains(spa_meta_objset(spa), in spa_checkpoint_get_stats() 171 pcs->pcs_space = spa->spa_checkpoint_info.sci_dspace; in spa_checkpoint_get_stats() 172 pcs->pcs_start_time = spa->spa_checkpoint_info.sci_timestamp; in spa_checkpoint_get_stats() 180 spa_t *spa = arg; in spa_checkpoint_discard_complete_sync() local 182 spa->spa_checkpoint_info.sci_timestamp = 0; in spa_checkpoint_discard_complete_sync() 184 spa_feature_decr(spa, SPA_FEATURE_POOL_CHECKPOINT, tx); in spa_checkpoint_discard_complete_sync() 185 spa_notify_waiters(spa); in spa_checkpoint_discard_complete_sync() 187 spa_history_log_internal(spa, "spa discard checkpoint", tx, in spa_checkpoint_discard_complete_sync() [all …]
|
| H A D | brt.c | 303 static void brt_vdevs_expand(spa_t *spa, uint64_t nvdevs); 306 brt_rlock(spa_t *spa) in brt_rlock() argument 308 rw_enter(&spa->spa_brt_lock, RW_READER); in brt_rlock() 312 brt_wlock(spa_t *spa) in brt_wlock() argument 314 rw_enter(&spa->spa_brt_lock, RW_WRITER); in brt_wlock() 318 brt_unlock(spa_t *spa) in brt_unlock() argument 320 rw_exit(&spa->spa_brt_lock); in brt_unlock() 416 brt_vdev(spa_t *spa, uint64_t vdevid, boolean_t alloc) in brt_vdev() argument 420 brt_rlock(spa); in brt_vdev() 421 if (vdevid < spa->spa_brt_nvdevs) { in brt_vdev() [all …]
|
| H A D | vdev_removal.c | 171 static int spa_vdev_remove_cancel_impl(spa_t *spa); 174 spa_sync_removing_state(spa_t *spa, dmu_tx_t *tx) in spa_sync_removing_state() argument 176 VERIFY0(zap_update(spa->spa_dsl_pool->dp_meta_objset, in spa_sync_removing_state() 179 sizeof (spa->spa_removing_phys) / sizeof (uint64_t), in spa_sync_removing_state() 180 &spa->spa_removing_phys, tx)); in spa_sync_removing_state() 216 spa_t *spa = vd->vdev_spa; in vdev_passivate() local 221 vdev_t *rvd = spa->spa_root_vdev; in vdev_passivate() 223 metaslab_class_t *normal = spa_normal_class(spa); in vdev_passivate() 259 spa_vdev_config_exit(spa, NULL, in vdev_passivate() 268 error = spa_reset_logs(spa); in vdev_passivate() [all …]
|
| H A D | mmp.c | 209 mmp_init(spa_t *spa) in mmp_init() argument 211 mmp_thread_t *mmp = &spa->spa_mmp; in mmp_init() 220 mmp_fini(spa_t *spa) in mmp_fini() argument 222 mmp_thread_t *mmp = &spa->spa_mmp; in mmp_fini() 246 mmp_thread_start(spa_t *spa) in mmp_thread_start() argument 248 mmp_thread_t *mmp = &spa->spa_mmp; in mmp_thread_start() 250 if (spa_writeable(spa)) { in mmp_thread_start() 254 spa, 0, &p0, TS_RUN, defclsyspri); in mmp_thread_start() 256 "gethrtime=%llu", spa_name(spa), gethrtime()); in mmp_thread_start() 263 mmp_thread_stop(spa_t *spa) in mmp_thread_stop() argument [all …]
|
| H A D | spa_stats.c | 118 spa_read_history_init(spa_t *spa) in spa_read_history_init() argument 120 spa_history_list_t *shl = &spa->spa_stats.read_history; in spa_read_history_init() 125 spa_name(spa), in spa_read_history_init() 136 spa_read_history_destroy(spa_t *spa) in spa_read_history_destroy() argument 138 spa_history_list_t *shl = &spa->spa_stats.read_history; in spa_read_history_destroy() 145 spa_read_history_add(spa_t *spa, const zbookmark_phys_t *zb, uint32_t aflags) in spa_read_history_add() argument 147 spa_history_list_t *shl = &spa->spa_stats.read_history; in spa_read_history_add() 150 ASSERT3P(spa, !=, NULL); in spa_read_history_add() 284 spa_txg_history_init(spa_t *spa) in spa_txg_history_init() argument 286 spa_history_list_t *shl = &spa->spa_stats.txg_history; in spa_txg_history_init() [all …]
|
| H A D | spa_history.c | 78 spa_history_create_obj(spa_t *spa, dmu_tx_t *tx) in spa_history_create_obj() argument 82 objset_t *mos = spa->spa_meta_objset; in spa_history_create_obj() 84 ASSERT0(spa->spa_history); in spa_history_create_obj() 85 spa->spa_history = dmu_object_alloc(mos, DMU_OT_SPA_HISTORY, in spa_history_create_obj() 91 &spa->spa_history, tx)); in spa_history_create_obj() 93 VERIFY0(dmu_bonus_hold(mos, spa->spa_history, FTAG, &dbp)); in spa_history_create_obj() 104 metaslab_class_get_dspace(spa_normal_class(spa)) / 1000; in spa_history_create_obj() 115 spa_history_advance_bof(spa_t *spa, spa_history_phys_t *shpp) in spa_history_advance_bof() argument 117 objset_t *mos = spa->spa_meta_objset; in spa_history_advance_bof() 125 if ((err = dmu_read(mos, spa->spa_history, phys_bof, firstread, in spa_history_advance_bof() [all …]
|
| H A D | ddt_stats.c | 30 spa_t *spa = ddt->ddt_spa; in ddt_stat_generate() local 50 dsize += dva_get_dsize_sync(spa, &dvas[d]); in ddt_stat_generate() 173 ddt_get_dedup_object_stats(spa_t *spa, ddt_object_t *ddo_total) in ddt_get_dedup_object_stats() argument 178 ddt_t *ddt = spa->spa_ddt[c]; in ddt_get_dedup_object_stats() 228 spa->spa_dedup_dsize = ddo_total->ddo_dspace; in ddt_get_dedup_object_stats() 232 ddt_get_ddt_dsize(spa_t *spa) in ddt_get_ddt_dsize() argument 237 if (spa->spa_dedup_dsize == ~0ULL) in ddt_get_ddt_dsize() 238 ddt_get_dedup_object_stats(spa, &ddo_total); in ddt_get_ddt_dsize() 240 return (spa->spa_dedup_dsize); in ddt_get_ddt_dsize() 244 ddt_get_dedup_histogram(spa_t *spa, ddt_histogram_t *ddh) in ddt_get_dedup_histogram() argument [all …]
|
| H A D | vdev_rebuild.c | 184 spa_t *spa = dmu_tx_pool(tx)->dp_spa; in vdev_rebuild_update_sync() local 185 vdev_t *vd = vdev_lookup_top(spa, vdev_id); in vdev_rebuild_update_sync() 214 spa_t *spa = dmu_tx_pool(tx)->dp_spa; in vdev_rebuild_initiate_sync() local 215 vdev_t *vd = vdev_lookup_top(spa, vdev_id); in vdev_rebuild_initiate_sync() 245 spa_history_log_internal(spa, "rebuild", tx, in vdev_rebuild_initiate_sync() 257 vdev_rebuild_log_notify(spa_t *spa, vdev_t *vd, const char *name) in vdev_rebuild_log_notify() argument 262 spa_event_notify(spa, vd, aux, name); in vdev_rebuild_log_notify() 273 spa_t *spa = vd->vdev_spa; in vdev_rebuild_initiate() local 279 dmu_tx_t *tx = dmu_tx_create_assigned(spa_get_dsl(spa), txg); in vdev_rebuild_initiate() 283 dsl_sync_task_nowait(spa_get_dsl(spa), vdev_rebuild_initiate_sync, in vdev_rebuild_initiate() [all …]
|
| H A D | vdev.c | 464 spa_t *spa = vd->vdev_spa; in vdev_prop_get_int() local 465 objset_t *mos = spa->spa_meta_objset; in vdev_prop_get_int() 510 vdev_lookup_top(spa_t *spa, uint64_t vdev) in vdev_lookup_top() argument 512 vdev_t *rvd = spa->spa_root_vdev; in vdev_lookup_top() 514 ASSERT(spa_config_held(spa, SCL_ALL, RW_READER) != 0); in vdev_lookup_top() 555 vdev_count_leaves(spa_t *spa) in vdev_count_leaves() argument 560 held = (spa_config_held(spa, SCL_VDEV, RW_WRITER) == SCL_VDEV); in vdev_count_leaves() 563 spa_config_enter(spa, SCL_VDEV, FTAG, RW_READER); in vdev_count_leaves() 564 rc = vdev_count_leaves_impl(spa->spa_root_vdev); in vdev_count_leaves() 566 spa_config_exit(spa, SCL_VDEV, FTAG); in vdev_count_leaves() [all …]
|
| /freebsd/sys/contrib/openzfs/include/sys/ |
| H A D | spa.h | 50 typedef struct spa spa_t; 782 extern void spa_async_request(spa_t *spa, int flag); 783 extern void spa_async_unrequest(spa_t *spa, int flag); 784 extern void spa_async_suspend(spa_t *spa); 785 extern void spa_async_resume(spa_t *spa); 786 extern int spa_async_tasks(spa_t *spa); 788 extern void spa_inject_delref(spa_t *spa); 789 extern void spa_scan_stat_init(spa_t *spa); 790 extern int spa_scan_get_stats(spa_t *spa, pool_scan_stat_t *ps); 813 extern int spa_vdev_add(spa_t *spa, nvlist_t *nvroot, boolean_t ashift_check); [all …]
|
| H A D | brt.h | 29 extern boolean_t brt_entry_decref(spa_t *spa, const blkptr_t *bp); 30 extern uint64_t brt_entry_get_refcount(spa_t *spa, const blkptr_t *bp); 32 extern uint64_t brt_get_dspace(spa_t *spa); 33 extern uint64_t brt_get_used(spa_t *spa); 34 extern uint64_t brt_get_saved(spa_t *spa); 35 extern uint64_t brt_get_ratio(spa_t *spa); 37 extern boolean_t brt_maybe_exists(spa_t *spa, const blkptr_t *bp); 38 extern uint64_t brt_sync_dirty_est(spa_t *spa); 42 extern void brt_pending_add(spa_t *spa, const blkptr_t *bp, dmu_tx_t *tx); 43 extern void brt_pending_remove(spa_t *spa, const blkptr_t *bp, dmu_tx_t *tx); [all …]
|
| H A D | zfeature.h | 32 struct spa; 36 extern void spa_feature_create_zap_objects(struct spa *, struct dmu_tx *); 37 extern void spa_feature_enable(struct spa *, spa_feature_t, 39 extern void spa_feature_incr(struct spa *, spa_feature_t, struct dmu_tx *); 40 extern void spa_feature_decr(struct spa *, spa_feature_t, struct dmu_tx *); 41 extern boolean_t spa_feature_is_enabled(struct spa *, spa_feature_t); 42 extern boolean_t spa_feature_is_active(struct spa *, spa_feature_t); 43 extern boolean_t spa_feature_enabled_txg(spa_t *spa, spa_feature_t fid, 52 extern int feature_get_refcount(struct spa *, zfeature_info_t *, uint64_t *); 53 extern int feature_get_refcount_from_disk(spa_t *spa, zfeature_info_t *feature, [all …]
|
| H A D | mmp.h | 59 extern void mmp_init(struct spa *spa); 60 extern void mmp_fini(struct spa *spa); 61 extern void mmp_thread_start(struct spa *spa); 62 extern void mmp_thread_stop(struct spa *spa); 63 extern void mmp_update_uberblock(struct spa *spa, struct uberblock *ub); 65 extern int mmp_claim_uberblock(spa_t *spa, vdev_t *vd, uberblock_t *ub);
|
| /freebsd/sys/contrib/openzfs/module/os/freebsd/zfs/ |
| H A D | spa_os.c | 175 spa_t *spa; in spa_import_rootpool() local 191 if ((spa = spa_lookup(pname)) != NULL) { in spa_import_rootpool() 196 if (spa->spa_state == POOL_STATE_ACTIVE) { in spa_import_rootpool() 207 spa_remove(spa); in spa_import_rootpool() 209 spa = spa_add(pname, config, NULL); in spa_import_rootpool() 216 &spa->spa_ubsync.ub_version) != 0) in spa_import_rootpool() 217 spa->spa_ubsync.ub_version = SPA_VERSION_INITIAL; in spa_import_rootpool() 218 } else if ((spa = spa_lookup(name)) == NULL) { in spa_import_rootpool() 225 config = fnvlist_dup(spa->spa_config); in spa_import_rootpool() 227 spa->spa_is_root = B_TRUE; in spa_import_rootpool() [all …]
|
| H A D | zfs_ioctl_os.c | 94 spa_t *spa; in zfs_ioc_nextboot() local 112 spa = spa_by_guid(pool_guid, vdev_guid); in zfs_ioc_nextboot() 113 if (spa != NULL) in zfs_ioc_nextboot() 114 strcpy(name, spa_name(spa)); in zfs_ioc_nextboot() 116 if (spa == NULL) in zfs_ioc_nextboot() 119 if ((error = spa_open(name, &spa, FTAG)) != 0) in zfs_ioc_nextboot() 121 spa_vdev_state_enter(spa, SCL_ALL); in zfs_ioc_nextboot() 122 vd = spa_lookup_by_guid(spa, vdev_guid, B_TRUE); in zfs_ioc_nextboot() 124 (void) spa_vdev_state_exit(spa, NULL, ENXIO); in zfs_ioc_nextboot() 125 spa_close(spa, FTAG); in zfs_ioc_nextboot() [all …]
|
| /freebsd/stand/efi/boot1/ |
| H A D | zfs_module.c | 116 spa_t *spa; in probe() local 127 if (vdev_probe(vdev_read, NULL, tdev, &spa) != 0) { in probe() 132 dev->devdata = spa; in probe() 141 spa_t *spa; in load() local 149 spa = devinfo->devdata; in load() 155 spa->spa_name, text); in load() 159 if ((err = zfs_spa_init(spa)) != 0) { in load() 160 DPRINTF("Failed to load pool '%s' (%d)\n", spa->spa_name, err); in load() 164 if (zfs_get_bootonce_spa(spa, OS_BOOTONCE, zfs_bootonce, in load() 189 if (zfs_lookup_dataset(spa, dname, &rootobj) != 0) { in load() [all …]
|
| /freebsd/stand/libsa/zfs/ |
| H A D | zfsimpl.c | 48 const spa_t *spa; member 145 static int zio_read(const spa_t *spa, const blkptr_t *bp, void *buf); 146 static int zio_read_impl(const spa_t *spa, const blkptr_t *bp, void *buf, 148 static int zfs_get_root(const spa_t *spa, uint64_t *objid); 149 static int zfs_rlookup(const spa_t *spa, uint64_t objnum, char *result); 150 static int zap_lookup(const spa_t *spa, const dnode_phys_t *dnode, 288 vdev_indirect_mapping_open(spa_t *spa, objset_phys_t *os, in vdev_indirect_mapping_open() argument 305 rc = objset_get_dnode(spa, os, mapping_object, vim->vim_dn); in vdev_indirect_mapping_open() 312 vim->vim_spa = spa; in vdev_indirect_mapping_open() 537 vdev_lookup_top(const spa_t *spa, uint64_t vdev) in vdev_lookup_top() argument [all …]
|
| H A D | zfs.c | 59 static void zfs_bootenv_initial(const char *envname, spa_t *spa, 61 static void zfs_checkpoints_initial(spa_t *spa, const char *name, 153 const spa_t *spa = ((struct zfsmount *)dev->d_opendata)->spa; in zfs_read() local 166 rc = dnode_read(spa, &fp->f_dnode, fp->f_seekp, start, n); in zfs_read() 221 return (zfs_dnode_stat(zm->spa, &fp->f_dnode, sb, zm->fsid_guid, in zfs_stat() 229 const spa_t *spa = ((struct zfsmount *)dev->d_opendata)->spa; in zfs_readdir() local 246 rc = dnode_read(spa, &fp->f_dnode, in zfs_readdir() 254 rc = dnode_read(spa, &fp->f_dnode, in zfs_readdir() 265 rc = dnode_read(spa, &fp->f_dnode, in zfs_readdir() 279 rc = dnode_read(spa, &fp->f_dnode, in zfs_readdir() [all …]
|
| /freebsd/sys/contrib/openzfs/cmd/ |
| H A D | zhack.c | 171 fatal(spa_t *spa, const void *tag, const char *fmt, ...) in fatal() argument 175 if (spa != NULL) { in fatal() 176 spa_close(spa, tag); in fatal() 255 zhack_spa_open(char *target, boolean_t readonly, const void *tag, spa_t **spa) in zhack_spa_open() argument 262 err = spa_open(target, spa, tag); in zhack_spa_open() 266 fatal(*spa, FTAG, "cannot open '%s': %s", target, in zhack_spa_open() 268 if (spa_version(*spa) < SPA_VERSION_FEATURES) { in zhack_spa_open() 269 fatal(*spa, FTAG, "'%s' has version %d, features not enabled", in zhack_spa_open() 270 target, (int)spa_version(*spa)); in zhack_spa_open() 302 dump_mos(spa_t *spa) in dump_mos() argument [all …]
|