usr/src/uts/common/fs/zfs/sys/vdev.h
author Christopher Siden <chris.siden@delphix.com>
Mon, 21 May 2012 12:11:39 -0700
changeset 13700 2889e2596bd6
parent 13573 72c96cded60f
child 13777 b1e53580146d
permissions -rw-r--r--
2619 asynchronous destruction of ZFS file systems 2747 SPA versioning with zfs feature flags Reviewed by: Matt Ahrens <[email protected]> Reviewed by: George Wilson <[email protected]> Reviewed by: Richard Lowe <[email protected]> Reviewed by: Dan Kruchinin <[email protected]> Approved by: Eric Schrock <[email protected]>
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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);
42768837421d PSARC/2009/511 zpool split
Mark J Musante <Mark.Musante@Sun.COM>
parents: 10922
diff changeset
    82
789
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
    83
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
    84
extern void vdev_get_stats(vdev_t *vd, vdev_stat_t *vs);
5450
b25030891c44 PSARC 2007/618 ZFS L2ARC
brendan
parents: 5329
diff changeset
    85
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
    86
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
    87
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
    88
extern void vdev_propagate_state(vdev_t *vd);
1544
938876158511 PSARC 2006/077 zpool clear
eschrock
parents: 1485
diff changeset
    89
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
    90
    vdev_aux_t aux);
789
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
    91
10922
e2081f502306 PSARC 2009/571 ZFS Deduplication Properties
Jeff Bonwick <Jeff.Bonwick@Sun.COM>
parents: 10921
diff changeset
    92
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
    93
    int64_t alloc_delta, int64_t defer_delta, int64_t space_delta);
789
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
    94
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
    95
extern uint64_t vdev_psize_to_asize(vdev_t *vd, uint64_t psize);
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
    96
10817
7dfde45252f0 6889826 ZFS retire agent should be able to repair pools
Eric Schrock <Eric.Schrock@Sun.COM>
parents: 10685
diff changeset
    97
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
    98
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
    99
extern int vdev_online(spa_t *spa, uint64_t guid, uint64_t flags,
24fbf2d7a5d7 PSARC 2007/197 ZFS hotplug
eschrock
parents: 3377
diff changeset
   100
    vdev_state_t *);
24fbf2d7a5d7 PSARC 2007/197 ZFS hotplug
eschrock
parents: 3377
diff changeset
   101
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
   102
extern void vdev_clear(spa_t *spa, vdev_t *vd);
789
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
   103
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
   104
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
   105
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
   106
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
   107
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
   108
extern boolean_t vdev_accessible(vdev_t *vd, zio_t *zio);
789
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
   109
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
   110
extern void vdev_cache_init(vdev_t *vd);
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
   111
extern void vdev_cache_fini(vdev_t *vd);
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
   112
extern int vdev_cache_read(zio_t *zio);
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
   113
extern void vdev_cache_write(zio_t *zio);
4451
24fbf2d7a5d7 PSARC 2007/197 ZFS hotplug
eschrock
parents: 3377
diff changeset
   114
extern void vdev_cache_purge(vdev_t *vd);
789
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
   115
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
   116
extern void vdev_queue_init(vdev_t *vd);
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
   117
extern void vdev_queue_fini(vdev_t *vd);
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
   118
extern zio_t *vdev_queue_io(zio_t *zio);
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
   119
extern void vdev_queue_io_done(zio_t *zio);
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
   120
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
   121
extern void vdev_config_dirty(vdev_t *vd);
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
   122
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
   123
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
   124
    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
   125
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
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
   127
extern void vdev_state_clean(vdev_t *vd);
789
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
   128
12296
7cf402a7f374 6675946 'zpool status' should show the progress of resilvering for individual disk.
Lin Ling <Lin.Ling@Sun.COM>
parents: 11958
diff changeset
   129
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
   130
	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
   131
	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
   132
	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
   133
} 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
   134
10594
986cb68d2347 6574286 removing a slog doesn't work
George Wilson <George.Wilson@Sun.COM>
parents: 10588
diff changeset
   135
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
   136
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
   137
    boolean_t getstats, vdev_config_flag_t flags);
789
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
   138
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
   139
/*
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
   140
 * Label routines
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
   141
 */
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
   142
struct uberblock;
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
   143
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
   144
extern int vdev_label_number(uint64_t psise, uint64_t offset);
13700
2889e2596bd6 2619 asynchronous destruction of ZFS file systems
Christopher Siden <chris.siden@delphix.com>
parents: 13573
diff changeset
   145
extern nvlist_t *vdev_label_read_config(vdev_t *vd, int label);
2889e2596bd6 2619 asynchronous destruction of ZFS file systems
Christopher Siden <chris.siden@delphix.com>
parents: 13573
diff changeset
   146
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
   147
a2fa338530c1 6393525 vdev_reopen() should verify that it's still the same device
eschrock
parents: 3059
diff changeset
   148
typedef enum {
a2fa338530c1 6393525 vdev_reopen() should verify that it's still the same device
eschrock
parents: 3059
diff changeset
   149
	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
   150
	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
   151
	VDEV_LABEL_SPARE,	/* add a new hot spare */
5450
b25030891c44 PSARC 2007/618 ZFS L2ARC
brendan
parents: 5329
diff changeset
   152
	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
   153
	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
   154
	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
   155
} vdev_labeltype_t;
a2fa338530c1 6393525 vdev_reopen() should verify that it's still the same device
eschrock
parents: 3059
diff changeset
   156
a2fa338530c1 6393525 vdev_reopen() should verify that it's still the same device
eschrock
parents: 3059
diff changeset
   157
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
   158
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
   159
#ifdef	__cplusplus
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
   160
}
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
   161
#endif
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
   162
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
   163
#endif	/* _SYS_VDEV_H */