annotate usr/src/uts/common/fs/zfs/sys/vdev.h @ 13869:921a99998bb4

3246 ZFS I/O deadman thread Reviewed by: Matt Ahrens <matthew.ahrens@delphix.com> Reviewed by: Eric Schrock <eric.schrock@delphix.com> Reviewed by: Christopher Siden <chris.siden@delphix.com> Approved by: Garrett D'Amore <garrett@damore.org>
author George.Wilson <george.wilson@delphix.com>
date Mon, 29 Oct 2012 12:08:09 -0500
parents b1e53580146d
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
789
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
1 /*
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
2 * CDDL HEADER START
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
3 *
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
4 * The contents of this file are subject to the terms of the
1485
e971e58d18f6 6322005 support for persistent offline
lling
parents: 789
diff changeset
5 * Common Development and Distribution License (the "License").
e971e58d18f6 6322005 support for persistent offline
lling
parents: 789
diff changeset
6 * You may not use this file except in compliance with the License.
789
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
7 *
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
9 * or http://www.opensolaris.org/os/licensing.
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
10 * See the License for the specific language governing permissions
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
11 * and limitations under the License.
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
12 *
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
13 * When distributing Covered Code, include this CDDL HEADER in each
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
15 * If applicable, add the following below this CDDL HEADER, with the
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
16 * fields enclosed by brackets "[]" replaced with your own identifying
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
17 * information: Portions Copyright [yyyy] [name of copyright owner]
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
18 *
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
19 * CDDL HEADER END
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
20 */
13700
2889e2596bd6 2619 asynchronous destruction of ZFS file systems
Christopher Siden <chris.siden@delphix.com>
parents: 13573
diff changeset
21
789
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
22 /*
12296
7cf402a7f374 6675946 'zpool status' should show the progress of resilvering for individual disk.
Lin Ling <Lin.Ling@Sun.COM>
parents: 11958
diff changeset
23 * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
13573
72c96cded60f 1949 crash during reguid causes stale config
George Wilson <george.wilson@delphix.com>
parents: 12296
diff changeset
24 * Copyright (c) 2012 by Delphix. All rights reserved.
789
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
25 */
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
26
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
27 #ifndef _SYS_VDEV_H
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
28 #define _SYS_VDEV_H
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
29
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
30 #include <sys/spa.h>
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
31 #include <sys/zio.h>
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
32 #include <sys/dmu.h>
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
33 #include <sys/space_map.h>
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
34 #include <sys/fs/zfs.h>
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
35
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
36 #ifdef __cplusplus
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
37 extern "C" {
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
38 #endif
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
39
8241
5a60f16123ba 6328632 zpool offline is a bit too conservative
Jeff Bonwick <Jeff.Bonwick@Sun.COM>
parents: 7980
diff changeset
40 typedef enum vdev_dtl_type {
5a60f16123ba 6328632 zpool offline is a bit too conservative
Jeff Bonwick <Jeff.Bonwick@Sun.COM>
parents: 7980
diff changeset
41 DTL_MISSING, /* 0% replication: no copies of the data */
5a60f16123ba 6328632 zpool offline is a bit too conservative
Jeff Bonwick <Jeff.Bonwick@Sun.COM>
parents: 7980
diff changeset
42 DTL_PARTIAL, /* less than 100% replication: some copies missing */
5a60f16123ba 6328632 zpool offline is a bit too conservative
Jeff Bonwick <Jeff.Bonwick@Sun.COM>
parents: 7980
diff changeset
43 DTL_SCRUB, /* unable to fully repair during scrub/resilver */
5a60f16123ba 6328632 zpool offline is a bit too conservative
Jeff Bonwick <Jeff.Bonwick@Sun.COM>
parents: 7980
diff changeset
44 DTL_OUTAGE, /* temporarily missing (used to attempt detach) */
5a60f16123ba 6328632 zpool offline is a bit too conservative
Jeff Bonwick <Jeff.Bonwick@Sun.COM>
parents: 7980
diff changeset
45 DTL_TYPES
5a60f16123ba 6328632 zpool offline is a bit too conservative
Jeff Bonwick <Jeff.Bonwick@Sun.COM>
parents: 7980
diff changeset
46 } vdev_dtl_type_t;
5a60f16123ba 6328632 zpool offline is a bit too conservative
Jeff Bonwick <Jeff.Bonwick@Sun.COM>
parents: 7980
diff changeset
47
2986
c782fcf7a319 6485204 more tuneable tweakin
ek110237
parents: 2082
diff changeset
48 extern boolean_t zfs_nocacheflush;
c782fcf7a319 6485204 more tuneable tweakin
ek110237
parents: 2082
diff changeset
49
789
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
50 extern int vdev_open(vdev_t *);
10588
dc03f981ea18 6438937 if 'zfs destroy' fails, it can leave a zvol device link missing
Eric Taylor <Eric.Taylor@Sun.COM>
parents: 9846
diff changeset
51 extern void vdev_open_children(vdev_t *);
dc03f981ea18 6438937 if 'zfs destroy' fails, it can leave a zvol device link missing
Eric Taylor <Eric.Taylor@Sun.COM>
parents: 9846
diff changeset
52 extern boolean_t vdev_uses_zvols(vdev_t *);
13573
72c96cded60f 1949 crash during reguid causes stale config
George Wilson <george.wilson@delphix.com>
parents: 12296
diff changeset
53 extern int vdev_validate(vdev_t *, boolean_t);
789
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
54 extern void vdev_close(vdev_t *);
2082
76b439ec3ac1 PSARC 2006/223 ZFS Hot Spares
eschrock
parents: 1986
diff changeset
55 extern int vdev_create(vdev_t *, uint64_t txg, boolean_t isreplace);
1544
938876158511 PSARC 2006/077 zpool clear
eschrock
parents: 1485
diff changeset
56 extern void vdev_reopen(vdev_t *);
5450
b25030891c44 PSARC 2007/618 ZFS L2ARC
brendan
parents: 5329
diff changeset
57 extern int vdev_validate_aux(vdev_t *vd);
7754
b80e4842ad54 6754011 SPA 3.0: lock breakup, i/o pipeline refactoring, device failure handling
Jeff Bonwick <Jeff.Bonwick@Sun.COM>
parents: 7046
diff changeset
58 extern zio_t *vdev_probe(vdev_t *vd, zio_t *pio);
789
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
59
7042
46fc4b6db23e 6721094 Setting certain properties on root pools should not be allowed
gw25295
parents: 6615
diff changeset
60 extern boolean_t vdev_is_bootable(vdev_t *vd);
789
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
61 extern vdev_t *vdev_lookup_top(spa_t *spa, uint64_t vdev);
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
62 extern vdev_t *vdev_lookup_by_guid(vdev_t *vd, uint64_t guid);
8241
5a60f16123ba 6328632 zpool offline is a bit too conservative
Jeff Bonwick <Jeff.Bonwick@Sun.COM>
parents: 7980
diff changeset
63 extern void vdev_dtl_dirty(vdev_t *vd, vdev_dtl_type_t d,
5a60f16123ba 6328632 zpool offline is a bit too conservative
Jeff Bonwick <Jeff.Bonwick@Sun.COM>
parents: 7980
diff changeset
64 uint64_t txg, uint64_t size);
5a60f16123ba 6328632 zpool offline is a bit too conservative
Jeff Bonwick <Jeff.Bonwick@Sun.COM>
parents: 7980
diff changeset
65 extern boolean_t vdev_dtl_contains(vdev_t *vd, vdev_dtl_type_t d,
5a60f16123ba 6328632 zpool offline is a bit too conservative
Jeff Bonwick <Jeff.Bonwick@Sun.COM>
parents: 7980
diff changeset
66 uint64_t txg, uint64_t size);
5a60f16123ba 6328632 zpool offline is a bit too conservative
Jeff Bonwick <Jeff.Bonwick@Sun.COM>
parents: 7980
diff changeset
67 extern boolean_t vdev_dtl_empty(vdev_t *vd, vdev_dtl_type_t d);
789
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
68 extern void vdev_dtl_reassess(vdev_t *vd, uint64_t txg, uint64_t scrub_txg,
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
69 int scrub_done);
8241
5a60f16123ba 6328632 zpool offline is a bit too conservative
Jeff Bonwick <Jeff.Bonwick@Sun.COM>
parents: 7980
diff changeset
70 extern boolean_t vdev_dtl_required(vdev_t *vd);
7046
361307ae060d 6343667 scrub/resilver has to start over when a snapshot is taken
ahrens
parents: 7042
diff changeset
71 extern boolean_t vdev_resilver_needed(vdev_t *vd,
361307ae060d 6343667 scrub/resilver has to start over when a snapshot is taken
ahrens
parents: 7042
diff changeset
72 uint64_t *minp, uint64_t *maxp);
789
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
73
11958
575ffe1e978d 6923585 deadlock while booting OpenSolaris build 132 from mirrored rpool with removed submirror
George Wilson <George.Wilson@Sun.COM>
parents: 11422
diff changeset
74 extern void vdev_hold(vdev_t *);
575ffe1e978d 6923585 deadlock while booting OpenSolaris build 132 from mirrored rpool with removed submirror
George Wilson <George.Wilson@Sun.COM>
parents: 11422
diff changeset
75 extern void vdev_rele(vdev_t *);
575ffe1e978d 6923585 deadlock while booting OpenSolaris build 132 from mirrored rpool with removed submirror
George Wilson <George.Wilson@Sun.COM>
parents: 11422
diff changeset
76
1544
938876158511 PSARC 2006/077 zpool clear
eschrock
parents: 1485
diff changeset
77 extern int vdev_metaslab_init(vdev_t *vd, uint64_t txg);
789
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
78 extern void vdev_metaslab_fini(vdev_t *vd);
9816
847676ec1c5b PSARC 2008/353 zpool autoexpand property
George Wilson <George.Wilson@Sun.COM>
parents: 9725
diff changeset
79 extern void vdev_metaslab_set_size(vdev_t *);
847676ec1c5b PSARC 2008/353 zpool autoexpand property
George Wilson <George.Wilson@Sun.COM>
parents: 9725
diff changeset
80 extern void vdev_expand(vdev_t *vd, uint64_t txg);
11422
42768837421d PSARC/2009/511 zpool split
Mark J Musante <Mark.Musante@Sun.COM>
parents: 10922
diff changeset
81 extern void vdev_split(vdev_t *vd);
13869
921a99998bb4 3246 ZFS I/O deadman thread
George.Wilson <george.wilson@delphix.com>
parents: 13777
diff changeset
82 extern void vdev_deadman(vdev_t *vd);
11422
42768837421d PSARC/2009/511 zpool split
Mark J Musante <Mark.Musante@Sun.COM>
parents: 10922
diff changeset
83
789
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
84
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
85 extern void vdev_get_stats(vdev_t *vd, vdev_stat_t *vs);
5450
b25030891c44 PSARC 2007/618 ZFS L2ARC
brendan
parents: 5329
diff changeset
86 extern void vdev_clear_stats(vdev_t *vd);
7754
b80e4842ad54 6754011 SPA 3.0: lock breakup, i/o pipeline refactoring, device failure handling
Jeff Bonwick <Jeff.Bonwick@Sun.COM>
parents: 7046
diff changeset
87 extern void vdev_stat_update(zio_t *zio, uint64_t psize);
12296
7cf402a7f374 6675946 'zpool status' should show the progress of resilvering for individual disk.
Lin Ling <Lin.Ling@Sun.COM>
parents: 11958
diff changeset
88 extern void vdev_scan_stat_init(vdev_t *vd);
1775
e51e26b432c0 6410698 ZFS metadata needs to be more highly replicated (ditto blocks)
billm
parents: 1635
diff changeset
89 extern void vdev_propagate_state(vdev_t *vd);
1544
938876158511 PSARC 2006/077 zpool clear
eschrock
parents: 1485
diff changeset
90 extern void vdev_set_state(vdev_t *vd, boolean_t isopen, vdev_state_t state,
938876158511 PSARC 2006/077 zpool clear
eschrock
parents: 1485
diff changeset
91 vdev_aux_t aux);
789
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
92
10922
e2081f502306 PSARC 2009/571 ZFS Deduplication Properties
Jeff Bonwick <Jeff.Bonwick@Sun.COM>
parents: 10921
diff changeset
93 extern void vdev_space_update(vdev_t *vd,
e2081f502306 PSARC 2009/571 ZFS Deduplication Properties
Jeff Bonwick <Jeff.Bonwick@Sun.COM>
parents: 10921
diff changeset
94 int64_t alloc_delta, int64_t defer_delta, int64_t space_delta);
789
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
95
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
96 extern uint64_t vdev_psize_to_asize(vdev_t *vd, uint64_t psize);
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
97
10817
7dfde45252f0 6889826 ZFS retire agent should be able to repair pools
Eric Schrock <Eric.Schrock@Sun.COM>
parents: 10685
diff changeset
98 extern int vdev_fault(spa_t *spa, uint64_t guid, vdev_aux_t aux);
7dfde45252f0 6889826 ZFS retire agent should be able to repair pools
Eric Schrock <Eric.Schrock@Sun.COM>
parents: 10685
diff changeset
99 extern int vdev_degrade(spa_t *spa, uint64_t guid, vdev_aux_t aux);
4451
24fbf2d7a5d7 PSARC 2007/197 ZFS hotplug
eschrock
parents: 3377
diff changeset
100 extern int vdev_online(spa_t *spa, uint64_t guid, uint64_t flags,
24fbf2d7a5d7 PSARC 2007/197 ZFS hotplug
eschrock
parents: 3377
diff changeset
101 vdev_state_t *);
24fbf2d7a5d7 PSARC 2007/197 ZFS hotplug
eschrock
parents: 3377
diff changeset
102 extern int vdev_offline(spa_t *spa, uint64_t guid, uint64_t flags);
7754
b80e4842ad54 6754011 SPA 3.0: lock breakup, i/o pipeline refactoring, device failure handling
Jeff Bonwick <Jeff.Bonwick@Sun.COM>
parents: 7046
diff changeset
103 extern void vdev_clear(spa_t *spa, vdev_t *vd);
789
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
104
7754
b80e4842ad54 6754011 SPA 3.0: lock breakup, i/o pipeline refactoring, device failure handling
Jeff Bonwick <Jeff.Bonwick@Sun.COM>
parents: 7046
diff changeset
105 extern boolean_t vdev_is_dead(vdev_t *vd);
b80e4842ad54 6754011 SPA 3.0: lock breakup, i/o pipeline refactoring, device failure handling
Jeff Bonwick <Jeff.Bonwick@Sun.COM>
parents: 7046
diff changeset
106 extern boolean_t vdev_readable(vdev_t *vd);
b80e4842ad54 6754011 SPA 3.0: lock breakup, i/o pipeline refactoring, device failure handling
Jeff Bonwick <Jeff.Bonwick@Sun.COM>
parents: 7046
diff changeset
107 extern boolean_t vdev_writeable(vdev_t *vd);
7980
589f37f25048 6764914 vdev_reopen() can lead to failed allocations
George Wilson <George.Wilson@Sun.COM>
parents: 7754
diff changeset
108 extern boolean_t vdev_allocatable(vdev_t *vd);
7754
b80e4842ad54 6754011 SPA 3.0: lock breakup, i/o pipeline refactoring, device failure handling
Jeff Bonwick <Jeff.Bonwick@Sun.COM>
parents: 7046
diff changeset
109 extern boolean_t vdev_accessible(vdev_t *vd, zio_t *zio);
789
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
110
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
111 extern void vdev_cache_init(vdev_t *vd);
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
112 extern void vdev_cache_fini(vdev_t *vd);
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
113 extern int vdev_cache_read(zio_t *zio);
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
114 extern void vdev_cache_write(zio_t *zio);
4451
24fbf2d7a5d7 PSARC 2007/197 ZFS hotplug
eschrock
parents: 3377
diff changeset
115 extern void vdev_cache_purge(vdev_t *vd);
789
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
116
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
117 extern void vdev_queue_init(vdev_t *vd);
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
118 extern void vdev_queue_fini(vdev_t *vd);
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
119 extern zio_t *vdev_queue_io(zio_t *zio);
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
120 extern void vdev_queue_io_done(zio_t *zio);
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
121
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
122 extern void vdev_config_dirty(vdev_t *vd);
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
123 extern void vdev_config_clean(vdev_t *vd);
9725
0bf7402e8022 6843014 ZFS B_FAILFAST handling is broken
Eric Schrock <Eric.Schrock@Sun.COM>
parents: 8241
diff changeset
124 extern int vdev_config_sync(vdev_t **svd, int svdcount, uint64_t txg,
0bf7402e8022 6843014 ZFS B_FAILFAST handling is broken
Eric Schrock <Eric.Schrock@Sun.COM>
parents: 8241
diff changeset
125 boolean_t);
7754
b80e4842ad54 6754011 SPA 3.0: lock breakup, i/o pipeline refactoring, device failure handling
Jeff Bonwick <Jeff.Bonwick@Sun.COM>
parents: 7046
diff changeset
126
b80e4842ad54 6754011 SPA 3.0: lock breakup, i/o pipeline refactoring, device failure handling
Jeff Bonwick <Jeff.Bonwick@Sun.COM>
parents: 7046
diff changeset
127 extern void vdev_state_dirty(vdev_t *vd);
b80e4842ad54 6754011 SPA 3.0: lock breakup, i/o pipeline refactoring, device failure handling
Jeff Bonwick <Jeff.Bonwick@Sun.COM>
parents: 7046
diff changeset
128 extern void vdev_state_clean(vdev_t *vd);
789
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
129
12296
7cf402a7f374 6675946 'zpool status' should show the progress of resilvering for individual disk.
Lin Ling <Lin.Ling@Sun.COM>
parents: 11958
diff changeset
130 typedef enum vdev_config_flag {
7cf402a7f374 6675946 'zpool status' should show the progress of resilvering for individual disk.
Lin Ling <Lin.Ling@Sun.COM>
parents: 11958
diff changeset
131 VDEV_CONFIG_SPARE = 1 << 0,
7cf402a7f374 6675946 'zpool status' should show the progress of resilvering for individual disk.
Lin Ling <Lin.Ling@Sun.COM>
parents: 11958
diff changeset
132 VDEV_CONFIG_L2CACHE = 1 << 1,
7cf402a7f374 6675946 'zpool status' should show the progress of resilvering for individual disk.
Lin Ling <Lin.Ling@Sun.COM>
parents: 11958
diff changeset
133 VDEV_CONFIG_REMOVING = 1 << 2
7cf402a7f374 6675946 'zpool status' should show the progress of resilvering for individual disk.
Lin Ling <Lin.Ling@Sun.COM>
parents: 11958
diff changeset
134 } vdev_config_flag_t;
7cf402a7f374 6675946 'zpool status' should show the progress of resilvering for individual disk.
Lin Ling <Lin.Ling@Sun.COM>
parents: 11958
diff changeset
135
10594
986cb68d2347 6574286 removing a slog doesn't work
George Wilson <George.Wilson@Sun.COM>
parents: 10588
diff changeset
136 extern void vdev_top_config_generate(spa_t *spa, nvlist_t *config);
2082
76b439ec3ac1 PSARC 2006/223 ZFS Hot Spares
eschrock
parents: 1986
diff changeset
137 extern nvlist_t *vdev_config_generate(spa_t *spa, vdev_t *vd,
12296
7cf402a7f374 6675946 'zpool status' should show the progress of resilvering for individual disk.
Lin Ling <Lin.Ling@Sun.COM>
parents: 11958
diff changeset
138 boolean_t getstats, vdev_config_flag_t flags);
789
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
139
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
140 /*
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
141 * Label routines
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
142 */
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
143 struct uberblock;
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
144 extern uint64_t vdev_label_offset(uint64_t psize, int l, uint64_t offset);
6615
333cfc13ec55 6616599 vdev_config_sync(rvd, txg) == 0, file: ../../common/fs/zfs/spa .c, line: 3537
gw25295
parents: 5688
diff changeset
145 extern int vdev_label_number(uint64_t psise, uint64_t offset);
13777
b1e53580146d 3090 vdev_reopen() during reguid causes vdev to be treated as corrupt
George Wilson <george.wilson@delphix.com>
parents: 13700
diff changeset
146 extern nvlist_t *vdev_label_read_config(vdev_t *vd, uint64_t txg);
13700
2889e2596bd6 2619 asynchronous destruction of ZFS file systems
Christopher Siden <chris.siden@delphix.com>
parents: 13573
diff changeset
147 extern void vdev_uberblock_load(vdev_t *, struct uberblock *, nvlist_t **);
3377
a2fa338530c1 6393525 vdev_reopen() should verify that it's still the same device
eschrock
parents: 3059
diff changeset
148
a2fa338530c1 6393525 vdev_reopen() should verify that it's still the same device
eschrock
parents: 3059
diff changeset
149 typedef enum {
a2fa338530c1 6393525 vdev_reopen() should verify that it's still the same device
eschrock
parents: 3059
diff changeset
150 VDEV_LABEL_CREATE, /* create/add a new device */
a2fa338530c1 6393525 vdev_reopen() should verify that it's still the same device
eschrock
parents: 3059
diff changeset
151 VDEV_LABEL_REPLACE, /* replace an existing device */
a2fa338530c1 6393525 vdev_reopen() should verify that it's still the same device
eschrock
parents: 3059
diff changeset
152 VDEV_LABEL_SPARE, /* add a new hot spare */
5450
b25030891c44 PSARC 2007/618 ZFS L2ARC
brendan
parents: 5329
diff changeset
153 VDEV_LABEL_REMOVE, /* remove an existing device */
11422
42768837421d PSARC/2009/511 zpool split
Mark J Musante <Mark.Musante@Sun.COM>
parents: 10922
diff changeset
154 VDEV_LABEL_L2CACHE, /* add an L2ARC cache device */
42768837421d PSARC/2009/511 zpool split
Mark J Musante <Mark.Musante@Sun.COM>
parents: 10922
diff changeset
155 VDEV_LABEL_SPLIT /* generating new label for split-off dev */
3377
a2fa338530c1 6393525 vdev_reopen() should verify that it's still the same device
eschrock
parents: 3059
diff changeset
156 } vdev_labeltype_t;
a2fa338530c1 6393525 vdev_reopen() should verify that it's still the same device
eschrock
parents: 3059
diff changeset
157
a2fa338530c1 6393525 vdev_reopen() should verify that it's still the same device
eschrock
parents: 3059
diff changeset
158 extern int vdev_label_init(vdev_t *vd, uint64_t txg, vdev_labeltype_t reason);
789
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
159
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
160 #ifdef __cplusplus
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
161 }
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
162 #endif
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
163
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
164 #endif /* _SYS_VDEV_H */