9290 device removal reduces redundancy of mirrors
[unleashed.git] / usr / src / lib / libzpool / common / llib-lzpool
blob9e52a46aee355b881d923b6d5e9349fd4f87842b
1 /*
2  * CDDL HEADER START
3  *
4  * The contents of this file are subject to the terms of the
5  * Common Development and Distribution License (the "License").
6  * You may not use this file except in compliance with the License.
7  *
8  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9  * or http://www.opensolaris.org/os/licensing.
10  * See the License for the specific language governing permissions
11  * and limitations under the License.
12  *
13  * When distributing Covered Code, include this CDDL HEADER in each
14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15  * If applicable, add the following below this CDDL HEADER, with the
16  * fields enclosed by brackets "[]" replaced with your own identifying
17  * information: Portions Copyright [yyyy] [name of copyright owner]
18  *
19  * CDDL HEADER END
20  */
22  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
23  * Use is subject to license terms.
24  */
27  * Copyright (c) 2012, 2018 by Delphix. All rights reserved.
28  */
30 /* LINTLIBRARY */
31 /* PROTOLIB1 */
33 #include <sys/zfs_context.h>
34 #include <sys/list.h>
35 #include <sys/list_impl.h>
36 #include <sys/sysmacros.h>
37 #include <sys/debug.h>
38 #include <sys/dmu_traverse.h>
39 #include <sys/dnode.h>
40 #include <sys/dsl_prop.h>
41 #include <sys/dsl_dataset.h>
42 #include <sys/dsl_scan.h>
43 #include <sys/spa.h>
44 #include <sys/spa_impl.h>
45 #include <sys/space_map.h>
46 #include <sys/vdev.h>
47 #include <sys/vdev_impl.h>
48 #include <sys/zap.h>
49 #include <sys/zio.h>
50 #include <sys/zio_compress.h>
51 #include <sys/zil.h>
52 #include <sys/bplist.h>
53 #include <sys/zfs_znode.h>
54 #include <sys/arc.h>
55 #include <sys/dbuf.h>
56 #include <sys/zio_checksum.h>
57 #include <sys/ddt.h>
58 #include <sys/sa.h>
59 #include <sys/zfs_sa.h>
60 #include <sys/zfeature.h>
61 #include <sys/dmu_tx.h>
62 #include <sys/dsl_destroy.h>
63 #include <sys/dsl_userhold.h>
64 #include <sys/blkptr.h>
65 #include <sys/abd.h>
66 #include <libcmdutils.h>
68 extern uint64_t metaslab_force_ganging;
69 extern uint64_t metaslab_df_alloc_threshold;
70 extern boolean_t zfeature_checks_disable;
71 extern uint64_t zfs_deadman_synctime_ms;
72 extern int metaslab_preload_limit;
73 extern boolean_t zfs_compressed_arc_enabled;
74 extern boolean_t zfs_abd_scatter_enabled;
75 extern boolean_t zfs_force_some_double_word_sm_entries;