diff options
Diffstat (limited to 'include/sys/vdev_removal.h')
-rw-r--r-- | include/sys/vdev_removal.h | 97 |
1 files changed, 0 insertions, 97 deletions
diff --git a/include/sys/vdev_removal.h b/include/sys/vdev_removal.h deleted file mode 100644 index 2d6303d23477..000000000000 --- a/include/sys/vdev_removal.h +++ /dev/null @@ -1,97 +0,0 @@ -// SPDX-License-Identifier: CDDL-1.0 -/* - * CDDL HEADER START - * - * This file and its contents are supplied under the terms of the - * Common Development and Distribution License ("CDDL"), version 1.0. - * You may only use this file in accordance with the terms of version - * 1.0 of the CDDL. - * - * A full copy of the text of the CDDL should have accompanied this - * source. A copy of the CDDL is also available via the Internet at - * http://www.illumos.org/license/CDDL. - * - * CDDL HEADER END - */ - -/* - * Copyright (c) 2014, 2019 by Delphix. All rights reserved. - */ - -#ifndef _SYS_VDEV_REMOVAL_H -#define _SYS_VDEV_REMOVAL_H - -#include <sys/spa.h> -#include <sys/bpobj.h> -#include <sys/vdev_indirect_mapping.h> -#include <sys/vdev_indirect_births.h> - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct spa_vdev_removal { - uint64_t svr_vdev_id; - uint64_t svr_max_offset_to_sync[TXG_SIZE]; - /* Thread performing a vdev removal. */ - kthread_t *svr_thread; - /* Segments left to copy from the current metaslab. */ - zfs_range_tree_t *svr_allocd_segs; - kmutex_t svr_lock; - kcondvar_t svr_cv; - boolean_t svr_thread_exit; - - /* - * New mappings to write out each txg. - */ - list_t svr_new_segments[TXG_SIZE]; - - /* - * Ranges that were freed while a mapping was in flight. This is - * a subset of the ranges covered by vdev_im_new_segments. - */ - zfs_range_tree_t *svr_frees[TXG_SIZE]; - - /* - * Number of bytes which we have finished our work for - * in each txg. This could be data copied (which will be part of - * the mappings in vdev_im_new_segments), or data freed before - * we got around to copying it. - */ - uint64_t svr_bytes_done[TXG_SIZE]; - - /* List of leaf zap objects to be unlinked */ - nvlist_t *svr_zaplist; -} spa_vdev_removal_t; - -typedef struct spa_condensing_indirect { - /* - * New mappings to write out each txg. - */ - list_t sci_new_mapping_entries[TXG_SIZE]; - - vdev_indirect_mapping_t *sci_new_mapping; -} spa_condensing_indirect_t; - -extern int spa_remove_init(spa_t *); -extern void spa_restart_removal(spa_t *); -extern int spa_condense_init(spa_t *); -extern void spa_condense_fini(spa_t *); -extern void spa_start_indirect_condensing_thread(spa_t *); -extern void spa_vdev_condense_suspend(spa_t *); -extern int spa_vdev_remove(spa_t *, uint64_t, boolean_t); -extern void free_from_removing_vdev(vdev_t *, uint64_t, uint64_t); -extern int spa_removal_get_stats(spa_t *, pool_removal_stat_t *); -extern void svr_sync(spa_t *, dmu_tx_t *); -extern void spa_vdev_remove_suspend(spa_t *); -extern int spa_vdev_remove_cancel(spa_t *); -extern void spa_vdev_removal_destroy(spa_vdev_removal_t *); -extern uint64_t spa_remove_max_segment(spa_t *); - -extern uint_t vdev_removal_max_span; - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_VDEV_REMOVAL_H */ |