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.
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.
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]
22 * Copyright 2010 Sun Microsystems, Inc. All rights reserved.
23 * Use is subject to license terms.
27 * Copyright (c) 2012, 2015 by Delphix. All rights reserved.
33 #include <sys/zfs_context.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>
43 #include <sys/spa_impl.h>
44 #include <sys/space_map.h>
46 #include <sys/vdev_impl.h>
49 #include <sys/zio_compress.h>
51 #include <sys/bplist.h>
52 #include <sys/zfs_znode.h>
55 #include <sys/zio_checksum.h>
58 #include <sys/zfs_sa.h>
59 #include <sys/zfeature.h>
60 #include <sys/dmu_tx.h>
61 #include <sys/dsl_destroy.h>
62 #include <sys/dsl_userhold.h>
63 #include <sys/blkptr.h>
66 extern uint64_t metaslab_gang_bang;
67 extern uint64_t metaslab_df_alloc_threshold;
68 extern boolean_t zfeature_checks_disable;
69 extern uint64_t zfs_deadman_synctime_ms;
70 extern int metaslab_preload_limit;
71 extern boolean_t zfs_compressed_arc_enabled;
72 extern boolean_t zfs_abd_scatter_enabled;