1fa9e406ahrens/*
2fa9e406ahrens * CDDL HEADER START
3fa9e406ahrens *
4fa9e406ahrens * The contents of this file are subject to the terms of the
5441d80alling * Common Development and Distribution License (the "License").
6441d80alling * You may not use this file except in compliance with the License.
7fa9e406ahrens *
8fa9e406ahrens * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9fa9e406ahrens * or http://www.opensolaris.org/os/licensing.
10fa9e406ahrens * See the License for the specific language governing permissions
11fa9e406ahrens * and limitations under the License.
12fa9e406ahrens *
13fa9e406ahrens * When distributing Covered Code, include this CDDL HEADER in each
14fa9e406ahrens * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15fa9e406ahrens * If applicable, add the following below this CDDL HEADER, with the
16fa9e406ahrens * fields enclosed by brackets "[]" replaced with your own identifying
17fa9e406ahrens * information: Portions Copyright [yyyy] [name of copyright owner]
18fa9e406ahrens *
19fa9e406ahrens * CDDL HEADER END
20fa9e406ahrens */
21f94275cAdam Leventhal
22fa9e406ahrens/*
2327dd1e8Mark Shellenbaum * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
24dfc1153Chris Williamson * Copyright (c) 2011, 2016 by Delphix. All rights reserved.
25e9103aaGarrett D'Amore * Copyright 2011 Nexenta Systems, Inc.  All rights reserved.
26c3d26abMatthew Ahrens * Copyright (c) 2014 Integros [integros.com]
27ce1577bDave Eddy * Copyright 2017 Joyent, Inc.
281702cceAlek Pinchuk * Copyright (c) 2017 Datto Inc.
29663207aDon Brady * Copyright (c) 2017, Intel Corporation.
30fa9e406ahrens */
31fa9e406ahrens
3255da60bMark J Musante/* Portions Copyright 2010 Robert Milkowski */
3355da60bMark J Musante
34fa9e406ahrens#ifndef	_SYS_FS_ZFS_H
35fa9e406ahrens#define	_SYS_FS_ZFS_H
36fa9e406ahrens
37842727cChris Kirby#include <sys/time.h>
38842727cChris Kirby
39fa9e406ahrens#ifdef	__cplusplus
40fa9e406ahrensextern "C" {
41fa9e406ahrens#endif
42fa9e406ahrens
43fa9e406ahrens/*
44fa9e406ahrens * Types and constants shared between userland and the kernel.
45fa9e406ahrens */
46fa9e406ahrens
47fa9e406ahrens/*
48fa9e406ahrens * Each dataset can be one of the following types.  These constants can be
49fa9e406ahrens * combined into masks that can be passed to various functions.
50fa9e406ahrens */
51fa9e406ahrenstypedef enum {
5278f1710Matthew Ahrens	ZFS_TYPE_FILESYSTEM	= (1 << 0),
5378f1710Matthew Ahrens	ZFS_TYPE_SNAPSHOT	= (1 << 1),
5478f1710Matthew Ahrens	ZFS_TYPE_VOLUME		= (1 << 2),
5578f1710Matthew Ahrens	ZFS_TYPE_POOL		= (1 << 3),
5678f1710Matthew Ahrens	ZFS_TYPE_BOOKMARK	= (1 << 4)
57fa9e406ahrens} zfs_type_t;
58fa9e406ahrens
5926455f9Andriy Gapon/*
6026455f9Andriy Gapon * NB: lzc_dataset_type should be updated whenever a new objset type is added,
6126455f9Andriy Gapon * if it represents a real type of a dataset that can be created from userland.
6226455f9Andriy Gapon */
634445fffMatthew Ahrenstypedef enum dmu_objset_type {
644445fffMatthew Ahrens	DMU_OST_NONE,
654445fffMatthew Ahrens	DMU_OST_META,
664445fffMatthew Ahrens	DMU_OST_ZFS,
674445fffMatthew Ahrens	DMU_OST_ZVOL,
684445fffMatthew Ahrens	DMU_OST_OTHER,			/* For testing only! */
694445fffMatthew Ahrens	DMU_OST_ANY,			/* Be careful! */
704445fffMatthew Ahrens	DMU_OST_NUMTYPES
714445fffMatthew Ahrens} dmu_objset_type_t;
724445fffMatthew Ahrens
73990b485lling#define	ZFS_TYPE_DATASET	\
74fa9e406ahrens	(ZFS_TYPE_FILESYSTEM | ZFS_TYPE_VOLUME | ZFS_TYPE_SNAPSHOT)
75fa9e406ahrens
769adfa60Matthew Ahrens/*
779adfa60Matthew Ahrens * All of these include the terminating NUL byte.
789adfa60Matthew Ahrens */
79478ed9aEric Taylor#define	ZAP_MAXNAMELEN 256
80478ed9aEric Taylor#define	ZAP_MAXVALUELEN (1024 * 8)
81478ed9aEric Taylor#define	ZAP_OLDMAXVALUELEN 1024
829adfa60Matthew Ahrens#define	ZFS_MAX_DATASET_NAME_LEN 256
83478ed9aEric Taylor
84fa9e406ahrens/*
85990b485lling * Dataset properties are identified by these constants and must be added to
86990b485lling * the end of this list to ensure that external consumers are not affected
87990b485lling * by the change. If you make any changes to this list, be sure to update
8866e2aacgw * the property table in usr/src/common/zfs/zfs_prop.c.
89fa9e406ahrens */
90fa9e406ahrenstypedef enum {
914ae5f5fAlan Somers	ZPROP_CONT = -2,
924ae5f5fAlan Somers	ZPROP_INVAL = -1,
93c16bcc4Igor Kozhukhov	ZFS_PROP_TYPE = 0,
94fa9e406ahrens	ZFS_PROP_CREATION,
95fa9e406ahrens	ZFS_PROP_USED,
96fa9e406ahrens	ZFS_PROP_AVAILABLE,
97fa9e406ahrens	ZFS_PROP_REFERENCED,
98fa9e406ahrens	ZFS_PROP_COMPRESSRATIO,
99fa9e406ahrens	ZFS_PROP_MOUNTED,
100fa9e406ahrens	ZFS_PROP_ORIGIN,
101fa9e406ahrens	ZFS_PROP_QUOTA,
102fa9e406ahrens	ZFS_PROP_RESERVATION,
103fa9e406ahrens	ZFS_PROP_VOLSIZE,
104fa9e406ahrens	ZFS_PROP_VOLBLOCKSIZE,
105fa9e406ahrens	ZFS_PROP_RECORDSIZE,
106fa9e406ahrens	ZFS_PROP_MOUNTPOINT,
107fa9e406ahrens	ZFS_PROP_SHARENFS,
108fa9e406ahrens	ZFS_PROP_CHECKSUM,
109fa9e406ahrens	ZFS_PROP_COMPRESSION,
110fa9e406ahrens	ZFS_PROP_ATIME,
111fa9e406ahrens	ZFS_PROP_DEVICES,
112fa9e406ahrens	ZFS_PROP_EXEC,
113fa9e406ahrens	ZFS_PROP_SETUID,
114fa9e406ahrens	ZFS_PROP_READONLY,
115fa9e406ahrens	ZFS_PROP_ZONED,
116fa9e406ahrens	ZFS_PROP_SNAPDIR,
117a3c49ceAlbert Lee	ZFS_PROP_ACLMODE,
118fa9e406ahrens	ZFS_PROP_ACLINHERIT,
119e8d4a73Josh Paetzel	ZFS_PROP_CREATETXG,
12066e2aacgw	ZFS_PROP_NAME,			/* not exposed to the user */
121e9dbad6eschrock	ZFS_PROP_CANMOUNT,
12266e2aacgw	ZFS_PROP_ISCSIOPTIONS,		/* not exposed to the user */
1237b55fa8ck	ZFS_PROP_XATTR,
124d0ad202ahrens	ZFS_PROP_NUMCLONES,		/* not exposed to the user */
125b1b8ab3lling	ZFS_PROP_COPIES,
126e743726ahrens	ZFS_PROP_VERSION,
127da6c28aamw	ZFS_PROP_UTF8ONLY,
128da6c28aamw	ZFS_PROP_NORMALIZE,
129da6c28aamw	ZFS_PROP_CASE,
130da6c28aamw	ZFS_PROP_VSCAN,
131da6c28aamw	ZFS_PROP_NBMAND,
132da6c28aamw	ZFS_PROP_SHARESMB,
133a979902ck	ZFS_PROP_REFQUOTA,
134a979902ck	ZFS_PROP_REFRESERVATION,
135c5904d1eschrock	ZFS_PROP_GUID,
1363baa08fek	ZFS_PROP_PRIMARYCACHE,
1373baa08fek	ZFS_PROP_SECONDARYCACHE,
13874e7dc9Matthew Ahrens	ZFS_PROP_USEDSNAP,
13974e7dc9Matthew Ahrens	ZFS_PROP_USEDDS,
14074e7dc9Matthew Ahrens	ZFS_PROP_USEDCHILD,
14174e7dc9Matthew Ahrens	ZFS_PROP_USEDREFRESERV,
1421484342Matthew Ahrens	ZFS_PROP_USERACCOUNTING,	/* not exposed to the user */
143478ed9aEric Taylor	ZFS_PROP_STMF_SHAREINFO,	/* not exposed to the user */
144842727cChris Kirby	ZFS_PROP_DEFER_DESTROY,
145842727cChris Kirby	ZFS_PROP_USERREFS,
146e09fa4dNeil Perrin	ZFS_PROP_LOGBIAS,
1471d71320Eric Schrock	ZFS_PROP_UNIQUE,		/* not exposed to the user */
1481d71320Eric Schrock	ZFS_PROP_OBJSETID,		/* not exposed to the user */
149b24ab67Jeff Bonwick	ZFS_PROP_DEDUP,
1504201a95Ric Aleshire	ZFS_PROP_MLSLABEL,
15155da60bMark J Musante	ZFS_PROP_SYNC,
15254811daToomas Soome	ZFS_PROP_DNODESIZE,
153187d6acMatt Ahrens	ZFS_PROP_REFRATIO,
15419b94dfMatthew Ahrens	ZFS_PROP_WRITTEN,
15519b94dfMatthew Ahrens	ZFS_PROP_CLONES,
15677372cbMatthew Ahrens	ZFS_PROP_LOGICALUSED,
15777372cbMatthew Ahrens	ZFS_PROP_LOGICALREFERENCED,
158ca48f36Keith M Wesolowski	ZFS_PROP_INCONSISTENT,		/* not exposed to the user */
159a2afb61Jerry Jelinek	ZFS_PROP_FILESYSTEM_LIMIT,
160a2afb61Jerry Jelinek	ZFS_PROP_SNAPSHOT_LIMIT,
161a2afb61Jerry Jelinek	ZFS_PROP_FILESYSTEM_COUNT,
162a2afb61Jerry Jelinek	ZFS_PROP_SNAPSHOT_COUNT,
163edf345eMatthew Ahrens	ZFS_PROP_REDUNDANT_METADATA,
164b461c74Matthew Ahrens	ZFS_PROP_PREV_SNAP,
1659c3fd12Matthew Ahrens	ZFS_PROP_RECEIVE_RESUME_TOKEN,
1665cabbc6Prashanth Sreenivasa	ZFS_PROP_REMAPTXG,		/* not exposed to the user */
167663207aDon Brady	ZFS_PROP_SPECIAL_SMALL_BLOCKS,
168eb63303Tom Caputi	ZFS_PROP_ENCRYPTION,
169eb63303Tom Caputi	ZFS_PROP_KEYLOCATION,
170eb63303Tom Caputi	ZFS_PROP_KEYFORMAT,
171eb63303Tom Caputi	ZFS_PROP_PBKDF2_SALT,
172eb63303Tom Caputi	ZFS_PROP_PBKDF2_ITERS,
173eb63303Tom Caputi	ZFS_PROP_ENCRYPTION_ROOT,
174eb63303Tom Caputi	ZFS_PROP_KEY_GUID,
175eb63303Tom Caputi	ZFS_PROP_KEYSTATUS,
176eb63303Tom Caputi	ZFS_PROP_IVSET_GUID,		/* not exposed to the user */
17791ebeefahrens	ZFS_NUM_PROPS
178fa9e406ahrens} zfs_prop_t;
179fa9e406ahrens
1801484342Matthew Ahrenstypedef enum {
1811484342Matthew Ahrens	ZFS_PROP_USERUSED,
1821484342Matthew Ahrens	ZFS_PROP_USERQUOTA,
1831484342Matthew Ahrens	ZFS_PROP_GROUPUSED,
1841484342Matthew Ahrens	ZFS_PROP_GROUPQUOTA,
185f67950bNasf-Fan	ZFS_PROP_USEROBJUSED,
186f67950bNasf-Fan	ZFS_PROP_USEROBJQUOTA,
187f67950bNasf-Fan	ZFS_PROP_GROUPOBJUSED,
188f67950bNasf-Fan	ZFS_PROP_GROUPOBJQUOTA,
189f67950bNasf-Fan	ZFS_PROP_PROJECTUSED,
190f67950bNasf-Fan	ZFS_PROP_PROJECTQUOTA,
191f67950bNasf-Fan	ZFS_PROP_PROJECTOBJUSED,
192f67950bNasf-Fan	ZFS_PROP_PROJECTOBJQUOTA,
1931484342Matthew Ahrens	ZFS_NUM_USERQUOTA_PROPS
1941484342Matthew Ahrens} zfs_userquota_prop_t;
1951484342Matthew Ahrens
1961484342Matthew Ahrensextern const char *zfs_userquota_prop_prefixes[ZFS_NUM_USERQUOTA_PROPS];
1971484342Matthew Ahrens
198990b485lling/*
199990b485lling * Pool properties are identified by these constants and must be added to the
200b87f3afperrin * end of this list to ensure that external consumers are not affected
201990b485lling * by the change. If you make any changes to this list, be sure to update
202990b485lling * the property table in usr/src/common/zfs/zpool_prop.c.
203990b485lling */
204990b485llingtypedef enum {
2054ae5f5fAlan Somers	ZPOOL_PROP_INVAL = -1,
206990b485lling	ZPOOL_PROP_NAME,
207990b485lling	ZPOOL_PROP_SIZE,
208990b485lling	ZPOOL_PROP_CAPACITY,
209990b485lling	ZPOOL_PROP_ALTROOT,
210990b485lling	ZPOOL_PROP_HEALTH,
211990b485lling	ZPOOL_PROP_GUID,
212990b485lling	ZPOOL_PROP_VERSION,
213990b485lling	ZPOOL_PROP_BOOTFS,
214990b485lling	ZPOOL_PROP_DELEGATION,
215990b485lling	ZPOOL_PROP_AUTOREPLACE,
2162f8aaabeschrock	ZPOOL_PROP_CACHEFILE,
2170a4e951gw	ZPOOL_PROP_FAILUREMODE,
218d5b5bb2Rich Morris	ZPOOL_PROP_LISTSNAPS,
219573ca77George Wilson	ZPOOL_PROP_AUTOEXPAND,
220b24ab67Jeff Bonwick	ZPOOL_PROP_DEDUPDITTO,
221b24ab67Jeff Bonwick	ZPOOL_PROP_DEDUPRATIO,
222485bbbfGeorge Wilson	ZPOOL_PROP_FREE,
223485bbbfGeorge Wilson	ZPOOL_PROP_ALLOCATED,
224f9af39bGeorge Wilson	ZPOOL_PROP_READONLY,
2258704186Dan McDonald	ZPOOL_PROP_COMMENT,
2264263d13George Wilson	ZPOOL_PROP_EXPANDSZ,
227ad135b5Christopher Siden	ZPOOL_PROP_FREEING,
2282e4c998George Wilson	ZPOOL_PROP_FRAGMENTATION,
2297fd05acMatthew Ahrens	ZPOOL_PROP_LEAKED,
230b515258Matthew Ahrens	ZPOOL_PROP_MAXBLOCKSIZE,
2317855d95Toomas Soome	ZPOOL_PROP_BOOTSIZE,
2328671400Serapheim Dimitropoulos	ZPOOL_PROP_CHECKPOINT,
23304e5635Andriy Gapon	ZPOOL_PROP_TNAME,
23454811daToomas Soome	ZPOOL_PROP_MAXDNODESIZE,
235e0f1c0aOlaf Faaland	ZPOOL_PROP_MULTIHOST,
2365711d39loli	ZPOOL_PROP_ASHIFT,
237084fd14Brian Behlendorf	ZPOOL_PROP_AUTOTRIM,
238990b485lling	ZPOOL_NUM_PROPS
239990b485lling} zpool_prop_t;
240b1b8ab3lling
2418704186Dan McDonald/* Small enough to not hog a whole line of printout in zpool(1M). */
2428704186Dan McDonald#define	ZPROP_MAX_COMMENT	32
2438704186Dan McDonald
244990b485lling#define	ZPROP_VALUE		"value"
245990b485lling#define	ZPROP_SOURCE		"source"
2467f7322feschrock
247b1b8ab3llingtypedef enum {
248990b485lling	ZPROP_SRC_NONE = 0x1,
249990b485lling	ZPROP_SRC_DEFAULT = 0x2,
250990b485lling	ZPROP_SRC_TEMPORARY = 0x4,
251990b485lling	ZPROP_SRC_LOCAL = 0x8,
25292241e0Tom Erickson	ZPROP_SRC_INHERITED = 0x10,
25392241e0Tom Erickson	ZPROP_SRC_RECEIVED = 0x20
254990b485lling} zprop_source_t;
255990b485lling
25692241e0Tom Erickson#define	ZPROP_SRC_ALL	0x3f
25792241e0Tom Erickson
25892241e0Tom Erickson#define	ZPROP_SOURCE_VAL_RECVD	"$recvd"
25992241e0Tom Erickson#define	ZPROP_N_MORE_ERRORS	"N_MORE_ERRORS"
26092241e0Tom Erickson/*
26192241e0Tom Erickson * Dataset flag implemented as a special entry in the props zap object
26292241e0Tom Erickson * indicating that the dataset has received properties on or after
26392241e0Tom Erickson * SPA_VERSION_RECVD_PROPS. The first such receive blows away local properties
26492241e0Tom Erickson * just as it did in earlier versions, and thereafter, local properties are
26592241e0Tom Erickson * preserved.
26692241e0Tom Erickson */
26792241e0Tom Erickson#define	ZPROP_HAS_RECVD		"$hasrecvd"
26892241e0Tom Erickson
26992241e0Tom Ericksontypedef enum {
27092241e0Tom Erickson	ZPROP_ERR_NOCLEAR = 0x1, /* failure to clear existing props */
27192241e0Tom Erickson	ZPROP_ERR_NORESTORE = 0x2 /* failure to restore props on error */
27292241e0Tom Erickson} zprop_errflags_t;
273990b485lling
274990b485llingtypedef int (*zprop_func)(int, void *);
275990b485lling
276990b485lling/*
2770a48a24timh * Properties to be set on the root file system of a new pool
2780a48a24timh * are stuffed into their own nvlist, which is then included in
2790a48a24timh * the properties nvlist with the pool properties.
2800a48a24timh */
2810a48a24timh#define	ZPOOL_ROOTFS_PROPS	"root-props-nvl"
2820a48a24timh
2830a48a24timh/*
284dfc1153Chris Williamson * Length of 'written@' and 'written#'
285dfc1153Chris Williamson */
286dfc1153Chris Williamson#define	ZFS_WRITTEN_PROP_PREFIX_LEN	8
287dfc1153Chris Williamson
288dfc1153Chris Williamson/*
289990b485lling * Dataset property functions shared between libzfs and kernel.
290990b485lling */
291990b485llingconst char *zfs_prop_default_string(zfs_prop_t);
292990b485llinguint64_t zfs_prop_default_numeric(zfs_prop_t);
293990b485llingboolean_t zfs_prop_readonly(zfs_prop_t);
294dfc1153Chris Williamsonboolean_t zfs_prop_visible(zfs_prop_t prop);
295990b485llingboolean_t zfs_prop_inheritable(zfs_prop_t);
296da6c28aamwboolean_t zfs_prop_setonce(zfs_prop_t);
297eb63303Tom Caputiboolean_t zfs_prop_encryption_key_param(zfs_prop_t);
298eb63303Tom Caputiboolean_t zfs_prop_valid_keylocation(const char *, boolean_t);
299990b485llingconst char *zfs_prop_to_name(zfs_prop_t);
300990b485llingzfs_prop_t zfs_name_to_prop(const char *);
301990b485llingboolean_t zfs_prop_user(const char *);
30292241e0Tom Ericksonboolean_t zfs_prop_userquota(const char *);
30319b94dfMatthew Ahrensboolean_t zfs_prop_written(const char *);
304990b485llingint zfs_prop_index_to_string(zfs_prop_t, uint64_t, const char **);
305990b485llingint zfs_prop_string_to_index(zfs_prop_t, const char *, uint64_t *);
306b24ab67Jeff Bonwickuint64_t zfs_prop_random_value(zfs_prop_t, uint64_t seed);
3074853e97gwboolean_t zfs_prop_valid_for_type(int, zfs_type_t);
308b1b8ab3lling
309990b485lling/*
310990b485lling * Pool property functions shared between libzfs and kernel.
311990b485lling */
312990b485llingzpool_prop_t zpool_name_to_prop(const char *);
313990b485llingconst char *zpool_prop_to_name(zpool_prop_t);
314990b485llingconst char *zpool_prop_default_string(zpool_prop_t);
315990b485llinguint64_t zpool_prop_default_numeric(zpool_prop_t);
316990b485llingboolean_t zpool_prop_readonly(zpool_prop_t);
317ad135b5Christopher Sidenboolean_t zpool_prop_feature(const char *);
318ad135b5Christopher Sidenboolean_t zpool_prop_unsupported(const char *name);
319990b485llingint zpool_prop_index_to_string(zpool_prop_t, uint64_t, const char **);
320990b485llingint zpool_prop_string_to_index(zpool_prop_t, const char *, uint64_t *);
321b24ab67Jeff Bonwickuint64_t zpool_prop_random_value(zpool_prop_t, uint64_t seed);
322b1b8ab3lling
323990b485lling/*
324990b485lling * Definitions for the Delegation.
325990b485lling */
326ecd6cf8markstypedef enum {
327ecd6cf8marks	ZFS_DELEG_WHO_UNKNOWN = 0,
328ecd6cf8marks	ZFS_DELEG_USER = 'u',
329ecd6cf8marks	ZFS_DELEG_USER_SETS = 'U',
330ecd6cf8marks	ZFS_DELEG_GROUP = 'g',
331ecd6cf8marks	ZFS_DELEG_GROUP_SETS = 'G',
332ecd6cf8marks	ZFS_DELEG_EVERYONE = 'e',
333ecd6cf8marks	ZFS_DELEG_EVERYONE_SETS = 'E',
334ecd6cf8marks	ZFS_DELEG_CREATE = 'c',
335ecd6cf8marks	ZFS_DELEG_CREATE_SETS = 'C',
336ecd6cf8marks	ZFS_DELEG_NAMED_SET = 's',
337ecd6cf8marks	ZFS_DELEG_NAMED_SET_SETS = 'S'
338ecd6cf8marks} zfs_deleg_who_type_t;
339ecd6cf8marks
340ecd6cf8markstypedef enum {
341ecd6cf8marks	ZFS_DELEG_NONE = 0,
342ecd6cf8marks	ZFS_DELEG_PERM_LOCAL = 1,
343ecd6cf8marks	ZFS_DELEG_PERM_DESCENDENT = 2,
344ecd6cf8marks	ZFS_DELEG_PERM_LOCALDESCENDENT = 3,
345ecd6cf8marks	ZFS_DELEG_PERM_CREATE = 4
346ecd6cf8marks} zfs_deleg_inherit_t;
347ecd6cf8marks
348ecd6cf8marks#define	ZFS_DELEG_PERM_UID	"uid"
349ecd6cf8marks#define	ZFS_DELEG_PERM_GID	"gid"
350ecd6cf8marks#define	ZFS_DELEG_PERM_GROUPS	"groups"
351ecd6cf8marks
3524201a95Ric Aleshire#define	ZFS_MLSLABEL_DEFAULT	"none"
3534201a95Ric Aleshire
354743a77eAlan Wright#define	ZFS_SMB_ACL_SRC		"src"
355743a77eAlan Wright#define	ZFS_SMB_ACL_TARGET	"target"
356743a77eAlan Wright
357a227b7fhstypedef enum {
358a227b7fhs	ZFS_CANMOUNT_OFF = 0,
359a227b7fhs	ZFS_CANMOUNT_ON = 1,
360a227b7fhs	ZFS_CANMOUNT_NOAUTO = 2
361a227b7fhs} zfs_canmount_type_t;
362a227b7fhs
363e09fa4dNeil Perrintypedef enum {
364e09fa4dNeil Perrin	ZFS_LOGBIAS_LATENCY = 0,
365e09fa4dNeil Perrin	ZFS_LOGBIAS_THROUGHPUT = 1
366e09fa4dNeil Perrin} zfs_logbias_op_t;
367e09fa4dNeil Perrin
368da6c28aamwtypedef enum zfs_share_op {
369da6c28aamw	ZFS_SHARE_NFS = 0,
370da6c28aamw	ZFS_UNSHARE_NFS = 1,
371da6c28aamw	ZFS_SHARE_SMB = 2,
372da6c28aamw	ZFS_UNSHARE_SMB = 3
373da6c28aamw} zfs_share_op_t;
374da6c28aamw
375743a77eAlan Wrighttypedef enum zfs_smb_acl_op {
376743a77eAlan Wright	ZFS_SMB_ACL_ADD,
377743a77eAlan Wright	ZFS_SMB_ACL_REMOVE,
378743a77eAlan Wright	ZFS_SMB_ACL_RENAME,
379743a77eAlan Wright	ZFS_SMB_ACL_PURGE
380743a77eAlan Wright} zfs_smb_acl_op_t;
381743a77eAlan Wright
3823baa08fektypedef enum zfs_cache_type {
3833baa08fek	ZFS_CACHE_NONE = 0,
3843baa08fek	ZFS_CACHE_METADATA = 1,
3853baa08fek	ZFS_CACHE_ALL = 2
3863baa08fek} zfs_cache_type_t;
3873baa08fek
38855da60bMark J Musantetypedef enum {
38955da60bMark J Musante	ZFS_SYNC_STANDARD = 0,
39055da60bMark J Musante	ZFS_SYNC_ALWAYS = 1,
39155da60bMark J Musante	ZFS_SYNC_DISABLED = 2
39255da60bMark J Musante} zfs_sync_type_t;
39355da60bMark J Musante
394edf345eMatthew Ahrenstypedef enum {
39554811daToomas Soome	ZFS_DNSIZE_LEGACY = 0,
39654811daToomas Soome	ZFS_DNSIZE_AUTO = 1,
39754811daToomas Soome	ZFS_DNSIZE_1K = 1024,
39854811daToomas Soome	ZFS_DNSIZE_2K = 2048,
39954811daToomas Soome	ZFS_DNSIZE_4K = 4096,
40054811daToomas Soome	ZFS_DNSIZE_8K = 8192,
40154811daToomas Soome	ZFS_DNSIZE_16K = 16384
40254811daToomas Soome} zfs_dnsize_type_t;
40354811daToomas Soome
40454811daToomas Soometypedef enum {
405edf345eMatthew Ahrens	ZFS_REDUNDANT_METADATA_ALL,
406edf345eMatthew Ahrens	ZFS_REDUNDANT_METADATA_MOST
407edf345eMatthew Ahrens} zfs_redundant_metadata_type_t;
4083baa08fek
409eb63303Tom Caputitypedef enum zfs_keystatus {
410eb63303Tom Caputi	ZFS_KEYSTATUS_NONE = 0,
411eb63303Tom Caputi	ZFS_KEYSTATUS_UNAVAILABLE,
412eb63303Tom Caputi	ZFS_KEYSTATUS_AVAILABLE
413eb63303Tom Caputi} zfs_keystatus_t;
414eb63303Tom Caputi
415eb63303Tom Caputitypedef enum zfs_keyformat {
416eb63303Tom Caputi	ZFS_KEYFORMAT_NONE = 0,
417eb63303Tom Caputi	ZFS_KEYFORMAT_RAW,
418eb63303Tom Caputi	ZFS_KEYFORMAT_HEX,
419eb63303Tom Caputi	ZFS_KEYFORMAT_PASSPHRASE,
420eb63303Tom Caputi	ZFS_KEYFORMAT_FORMATS
421eb63303Tom Caputi} zfs_keyformat_t;
422eb63303Tom Caputi
423eb63303Tom Caputitypedef enum zfs_key_location {
424eb63303Tom Caputi	ZFS_KEYLOCATION_NONE = 0,
425eb63303Tom Caputi	ZFS_KEYLOCATION_PROMPT,
426eb63303Tom Caputi	ZFS_KEYLOCATION_URI,
427eb63303Tom Caputi	ZFS_KEYLOCATION_LOCATIONS
428eb63303Tom Caputi} zfs_keylocation_t;
429eb63303Tom Caputi
430eb63303Tom Caputi#define	DEFAULT_PBKDF2_ITERATIONS 350000
431eb63303Tom Caputi#define	MIN_PBKDF2_ITERATIONS 100000
432eb63303Tom Caputi
433fa9e406ahrens/*
43499653d4eschrock * On-disk version number.
435eaca9bbeschrock */
436e743726ahrens#define	SPA_VERSION_1			1ULL
437e743726ahrens#define	SPA_VERSION_2			2ULL
438e743726ahrens#define	SPA_VERSION_3			3ULL
439e743726ahrens#define	SPA_VERSION_4			4ULL
440e743726ahrens#define	SPA_VERSION_5			5ULL
441e743726ahrens#define	SPA_VERSION_6			6ULL
442e743726ahrens#define	SPA_VERSION_7			7ULL
443e743726ahrens#define	SPA_VERSION_8			8ULL
444da6c28aamw#define	SPA_VERSION_9			9ULL
445fa94a07brendan#define	SPA_VERSION_10			10ULL
446088f389ahrens#define	SPA_VERSION_11			11ULL
447bb0ade0ahrens#define	SPA_VERSION_12			12ULL
44874e7dc9Matthew Ahrens#define	SPA_VERSION_13			13ULL
449d0f3f37Mark Shellenbaum#define	SPA_VERSION_14			14ULL
4501484342Matthew Ahrens#define	SPA_VERSION_15			15ULL
451478ed9aEric Taylor#define	SPA_VERSION_16			16ULL
452f94275cAdam Leventhal#define	SPA_VERSION_17			17ULL
453842727cChris Kirby#define	SPA_VERSION_18			18ULL
45488ecc94George Wilson#define	SPA_VERSION_19			19ULL
455b24ab67Jeff Bonwick#define	SPA_VERSION_20			20ULL
456b24ab67Jeff Bonwick#define	SPA_VERSION_21			21ULL
45792241e0Tom Erickson#define	SPA_VERSION_22			22ULL
4586e1f5caNeil Perrin#define	SPA_VERSION_23			23ULL
4590a586ceMark Shellenbaum#define	SPA_VERSION_24			24ULL
4603f9d6adLin Ling#define	SPA_VERSION_25			25ULL
461cde58dbMatthew Ahrens#define	SPA_VERSION_26			26ULL
4626e0cbcaMatthew Ahrens#define	SPA_VERSION_27			27ULL
463cb04b87Mark J Musante#define	SPA_VERSION_28			28ULL
464ad135b5Christopher Siden#define	SPA_VERSION_5000		5000ULL
465cb04b87Mark J Musante
466b1b8ab3lling/*
467e7cbe64gw * When bumping up SPA_VERSION, make sure GRUB ZFS understands the on-disk
468478ed9aEric Taylor * format change. Go to usr/src/grub/grub-0.97/stage2/{zfs-include/, fsys_zfs*},
4691484342Matthew Ahrens * and do the appropriate changes.  Also bump the version number in
4701484342Matthew Ahrens * usr/src/grub/capability.
471b1b8ab3lling */
472ad135b5Christopher Siden#define	SPA_VERSION			SPA_VERSION_5000
473ad135b5Christopher Siden#define	SPA_VERSION_STRING		"5000"
47444cd46cbillm
47544cd46cbillm/*
476e743726ahrens * Symbolic names for the changes that caused a SPA_VERSION switch.
47744cd46cbillm * Used in the code when checking for presence or absence of a feature.
47844cd46cbillm * Feel free to define multiple symbolic names for each version if there
47944cd46cbillm * were multiple changes to on-disk structures during that version.
48044cd46cbillm *
481e743726ahrens * NOTE: When checking the current SPA_VERSION in your code, be sure
48244cd46cbillm *       to use spa_version() since it reports the version of the
48344cd46cbillm *       last synced uberblock.  Checking the in-flight version can
48444cd46cbillm *       be dangerous in some cases.
48544cd46cbillm */
486e743726ahrens#define	SPA_VERSION_INITIAL		SPA_VERSION_1
487e743726ahrens#define	SPA_VERSION_DITTO_BLOCKS	SPA_VERSION_2
488e743726ahrens#define	SPA_VERSION_SPARES		SPA_VERSION_3
489f94275cAdam Leventhal#define	SPA_VERSION_RAIDZ2		SPA_VERSION_3
490cde58dbMatthew Ahrens#define	SPA_VERSION_BPOBJ_ACCOUNT	SPA_VERSION_3
491e743726ahrens#define	SPA_VERSION_RAIDZ_DEFLATE	SPA_VERSION_3
492e743726ahrens#define	SPA_VERSION_DNODE_BYTES		SPA_VERSION_3
493e743726ahrens#define	SPA_VERSION_ZPOOL_HISTORY	SPA_VERSION_4
494e743726ahrens#define	SPA_VERSION_GZIP_COMPRESSION	SPA_VERSION_5
495e743726ahrens#define	SPA_VERSION_BOOTFS		SPA_VERSION_6
496990b485lling#define	SPA_VERSION_SLOGS		SPA_VERSION_7
497990b485lling#define	SPA_VERSION_DELEGATED_PERMS	SPA_VERSION_8
498da6c28aamw#define	SPA_VERSION_FUID		SPA_VERSION_9
499a979902ck#define	SPA_VERSION_REFRESERVATION	SPA_VERSION_9
500a979902ck#define	SPA_VERSION_REFQUOTA		SPA_VERSION_9
501a979902ck#define	SPA_VERSION_UNIQUE_ACCURATE	SPA_VERSION_9
502fa94a07brendan#define	SPA_VERSION_L2CACHE		SPA_VERSION_10
503088f389ahrens#define	SPA_VERSION_NEXT_CLONES		SPA_VERSION_11
504088f389ahrens#define	SPA_VERSION_ORIGIN		SPA_VERSION_11
505088f389ahrens#define	SPA_VERSION_DSL_SCRUB		SPA_VERSION_11
506bb0ade0ahrens#define	SPA_VERSION_SNAP_PROPS		SPA_VERSION_12
50774e7dc9Matthew Ahrens#define	SPA_VERSION_USED_BREAKDOWN	SPA_VERSION_13
508d0f3f37Mark Shellenbaum#define	SPA_VERSION_PASSTHROUGH_X	SPA_VERSION_14
5091484342Matthew Ahrens#define	SPA_VERSION_USERSPACE		SPA_VERSION_15
510478ed9aEric Taylor#define	SPA_VERSION_STMF_PROP		SPA_VERSION_16
511f94275cAdam Leventhal#define	SPA_VERSION_RAIDZ3		SPA_VERSION_17
512842727cChris Kirby#define	SPA_VERSION_USERREFS		SPA_VERSION_18
51388ecc94George Wilson#define	SPA_VERSION_HOLES		SPA_VERSION_19
514b24ab67Jeff Bonwick#define	SPA_VERSION_ZLE_COMPRESSION	SPA_VERSION_20
515b24ab67Jeff Bonwick#define	SPA_VERSION_DEDUP		SPA_VERSION_21
51692241e0Tom Erickson#define	SPA_VERSION_RECVD_PROPS		SPA_VERSION_22
5176e1f5caNeil Perrin#define	SPA_VERSION_SLIM_ZIL		SPA_VERSION_23
5180a586ceMark Shellenbaum#define	SPA_VERSION_SA			SPA_VERSION_24
5193f9d6adLin Ling#define	SPA_VERSION_SCAN		SPA_VERSION_25
520cde58dbMatthew Ahrens#define	SPA_VERSION_DIR_CLONES		SPA_VERSION_26
521cde58dbMatthew Ahrens#define	SPA_VERSION_DEADLISTS		SPA_VERSION_26
5226e0cbcaMatthew Ahrens#define	SPA_VERSION_FAST_SNAP		SPA_VERSION_27
523cb04b87Mark J Musante#define	SPA_VERSION_MULTI_REPLACE	SPA_VERSION_28
524ad135b5Christopher Siden#define	SPA_VERSION_BEFORE_FEATURES	SPA_VERSION_28
525ad135b5Christopher Siden#define	SPA_VERSION_FEATURES		SPA_VERSION_5000
526ad135b5Christopher Siden
527ad135b5Christopher Siden#define	SPA_VERSION_IS_SUPPORTED(v) \
528ad135b5Christopher Siden	(((v) >= SPA_VERSION_INITIAL && (v) <= SPA_VERSION_BEFORE_FEATURES) || \
529ad135b5Christopher Siden	((v) >= SPA_VERSION_FEATURES && (v) <= SPA_VERSION))
530e743726ahrens
531e743726ahrens/*
532e743726ahrens * ZPL version - rev'd whenever an incompatible on-disk format change
533e743726ahrens * occurs.  This is independent of SPA/DMU/ZAP versioning.  You must
534e743726ahrens * also update the version_table[] and help message in zfs_prop.c.
535e743726ahrens *
536e743726ahrens * When changing, be sure to teach GRUB how to read the new format!
537478ed9aEric Taylor * See usr/src/grub/grub-0.97/stage2/{zfs-include/,fsys_zfs*}
538e743726ahrens */
539e743726ahrens#define	ZPL_VERSION_1			1ULL
540e743726ahrens#define	ZPL_VERSION_2			2ULL
541da6c28aamw#define	ZPL_VERSION_3			3ULL
5421484342Matthew Ahrens#define	ZPL_VERSION_4			4ULL
5430a586ceMark Shellenbaum#define	ZPL_VERSION_5			5ULL
5440a586ceMark Shellenbaum#define	ZPL_VERSION			ZPL_VERSION_5
5450a586ceMark Shellenbaum#define	ZPL_VERSION_STRING		"5"
546e743726ahrens
547e743726ahrens#define	ZPL_VERSION_INITIAL		ZPL_VERSION_1
548e743726ahrens#define	ZPL_VERSION_DIRENT_TYPE		ZPL_VERSION_2
549da6c28aamw#define	ZPL_VERSION_FUID		ZPL_VERSION_3
550de8267etimh#define	ZPL_VERSION_NORMALIZATION	ZPL_VERSION_3
551da6c28aamw#define	ZPL_VERSION_SYSATTR		ZPL_VERSION_3
5521484342Matthew Ahrens#define	ZPL_VERSION_USERSPACE		ZPL_VERSION_4
5530a586ceMark Shellenbaum#define	ZPL_VERSION_SA			ZPL_VERSION_5
554eaca9bbeschrock
5555dafeeaPavel Zakharov/* Rewind policy information */
556c8ee184Victor Latushkin#define	ZPOOL_NO_REWIND		1  /* No policy - default behavior */
557c8ee184Victor Latushkin#define	ZPOOL_NEVER_REWIND	2  /* Do not search for best txg or rewind */
558c8ee184Victor Latushkin#define	ZPOOL_TRY_REWIND	4  /* Search for best txg, but do not rewind */
559c8ee184Victor Latushkin#define	ZPOOL_DO_REWIND		8  /* Rewind to best txg w/in deferred frees */
560c8ee184Victor Latushkin#define	ZPOOL_EXTREME_REWIND	16 /* Allow extreme measures to find best txg */
561c8ee184Victor Latushkin#define	ZPOOL_REWIND_MASK	28 /* All the possible rewind bits */
562c8ee184Victor Latushkin#define	ZPOOL_REWIND_POLICIES	31 /* All the possible policy bits */
563468c413Tim Haley
5645dafeeaPavel Zakharovtypedef struct zpool_load_policy {
5655dafeeaPavel Zakharov	uint32_t	zlp_rewind;	/* rewind policy requested */
5665dafeeaPavel Zakharov	uint64_t	zlp_maxmeta;	/* max acceptable meta-data errors */
5675dafeeaPavel Zakharov	uint64_t	zlp_maxdata;	/* max acceptable data errors */
5685dafeeaPavel Zakharov	uint64_t	zlp_txg;	/* specific txg to load */
5695dafeeaPavel Zakharov} zpool_load_policy_t;
570468c413Tim Haley
571eaca9bbeschrock/*
572fa9e406ahrens * The following are configuration names used in the nvlist describing a pool's
5735cabbc6Prashanth Sreenivasa * configuration.  New on-disk names should be prefixed with "<reverse-DNS>:"
5745cabbc6Prashanth Sreenivasa * (e.g. "org.open-zfs:") to avoid conflicting names being developed
5755cabbc6Prashanth Sreenivasa * independently.
576fa9e406ahrens */
577fa9e406ahrens#define	ZPOOL_CONFIG_VERSION		"version"
578fa9e406ahrens#define	ZPOOL_CONFIG_POOL_NAME		"name"
579fa9e406ahrens#define	ZPOOL_CONFIG_POOL_STATE		"state"
580fa9e406ahrens#define	ZPOOL_CONFIG_POOL_TXG		"txg"
581fa9e406ahrens#define	ZPOOL_CONFIG_POOL_GUID		"pool_guid"
582fa9e406ahrens#define	ZPOOL_CONFIG_CREATE_TXG		"create_txg"
583fa9e406ahrens#define	ZPOOL_CONFIG_TOP_GUID		"top_guid"
584fa9e406ahrens#define	ZPOOL_CONFIG_VDEV_TREE		"vdev_tree"
585fa9e406ahrens#define	ZPOOL_CONFIG_TYPE		"type"
586fa9e406ahrens#define	ZPOOL_CONFIG_CHILDREN		"children"
587fa9e406ahrens#define	ZPOOL_CONFIG_ID			"id"
588fa9e406ahrens#define	ZPOOL_CONFIG_GUID		"guid"
5895cabbc6Prashanth Sreenivasa#define	ZPOOL_CONFIG_INDIRECT_OBJECT	"com.delphix:indirect_object"
5905cabbc6Prashanth Sreenivasa#define	ZPOOL_CONFIG_INDIRECT_BIRTHS	"com.delphix:indirect_births"
5915cabbc6Prashanth Sreenivasa#define	ZPOOL_CONFIG_PREV_INDIRECT_VDEV	"com.delphix:prev_indirect_vdev"
592fa9e406ahrens#define	ZPOOL_CONFIG_PATH		"path"
593fa9e406ahrens#define	ZPOOL_CONFIG_DEVID		"devid"
594fa9e406ahrens#define	ZPOOL_CONFIG_METASLAB_ARRAY	"metaslab_array"
595fa9e406ahrens#define	ZPOOL_CONFIG_METASLAB_SHIFT	"metaslab_shift"
596fa9e406ahrens#define	ZPOOL_CONFIG_ASHIFT		"ashift"
597fa9e406ahrens#define	ZPOOL_CONFIG_ASIZE		"asize"
598fa9e406ahrens#define	ZPOOL_CONFIG_DTL		"DTL"
5993f9d6adLin Ling#define	ZPOOL_CONFIG_SCAN_STATS		"scan_stats"	/* not stored on disk */
6005cabbc6Prashanth Sreenivasa#define	ZPOOL_CONFIG_REMOVAL_STATS	"removal_stats"	/* not stored on disk */
6018671400Serapheim Dimitropoulos#define	ZPOOL_CONFIG_CHECKPOINT_STATS	"checkpoint_stats" /* not on disk */
6023f9d6adLin Ling#define	ZPOOL_CONFIG_VDEV_STATS		"vdev_stats"	/* not stored on disk */
6035cabbc6Prashanth Sreenivasa#define	ZPOOL_CONFIG_INDIRECT_SIZE	"indirect_size"	/* not stored on disk */
604afefbcdeschrock#define	ZPOOL_CONFIG_WHOLE_DISK		"whole_disk"
605ea8dc4beschrock#define	ZPOOL_CONFIG_ERRCOUNT		"error_count"
606ea8dc4beschrock#define	ZPOOL_CONFIG_NOT_PRESENT	"not_present"
60799653d4eschrock#define	ZPOOL_CONFIG_SPARES		"spares"
60899653d4eschrock#define	ZPOOL_CONFIG_IS_SPARE		"is_spare"
60999653d4eschrock#define	ZPOOL_CONFIG_NPARITY		"nparity"
6109517395ek#define	ZPOOL_CONFIG_HOSTID		"hostid"
6119517395ek#define	ZPOOL_CONFIG_HOSTNAME		"hostname"
61211027bcTim Haley#define	ZPOOL_CONFIG_LOADED_TIME	"initial_load_time"
6133d7072feschrock#define	ZPOOL_CONFIG_UNSPARE		"unspare"
6143d7072feschrock#define	ZPOOL_CONFIG_PHYS_PATH		"phys_path"
6158654d02perrin#define	ZPOOL_CONFIG_IS_LOG		"is_log"
616fa94a07brendan#define	ZPOOL_CONFIG_L2CACHE		"l2cache"
61788ecc94George Wilson#define	ZPOOL_CONFIG_HOLE_ARRAY		"hole_array"
61888ecc94George Wilson#define	ZPOOL_CONFIG_VDEV_CHILDREN	"vdev_children"
61988ecc94George Wilson#define	ZPOOL_CONFIG_IS_HOLE		"is_hole"
6209eb19f4George Wilson#define	ZPOOL_CONFIG_DDT_HISTOGRAM	"ddt_histogram"
6219eb19f4George Wilson#define	ZPOOL_CONFIG_DDT_OBJ_STATS	"ddt_object_stats"
6229eb19f4George Wilson#define	ZPOOL_CONFIG_DDT_STATS		"ddt_stats"
6231195e68Mark J Musante#define	ZPOOL_CONFIG_SPLIT		"splitcfg"
6241195e68Mark J Musante#define	ZPOOL_CONFIG_ORIG_GUID		"orig_guid"
6251195e68Mark J Musante#define	ZPOOL_CONFIG_SPLIT_GUID		"split_guid"
6261195e68Mark J Musante#define	ZPOOL_CONFIG_SPLIT_LIST		"guid_list"
6273f9d6adLin Ling#define	ZPOOL_CONFIG_REMOVING		"removing"
628b4952e1George Wilson#define	ZPOOL_CONFIG_RESILVER_TXG	"resilver_txg"
6298704186Dan McDonald#define	ZPOOL_CONFIG_COMMENT		"comment"
630e14bb32Jeff Bonwick#define	ZPOOL_CONFIG_SUSPENDED		"suspended"	/* not stored on disk */
631e0f1c0aOlaf Faaland#define	ZPOOL_CONFIG_SUSPENDED_REASON	"suspended_reason"	/* not stored */
632e7cbe64gw#define	ZPOOL_CONFIG_TIMESTAMP		"timestamp"	/* not stored on disk */
633e7cbe64gw#define	ZPOOL_CONFIG_BOOTFS		"bootfs"	/* not stored on disk */
6344b964adGeorge Wilson#define	ZPOOL_CONFIG_MISSING_DEVICES	"missing_vdevs"	/* not stored on disk */
6354b964adGeorge Wilson#define	ZPOOL_CONFIG_LOAD_INFO		"load_info"	/* not stored on disk */
636ad135b5Christopher Siden#define	ZPOOL_CONFIG_REWIND_INFO	"rewind_info"	/* not stored on disk */
637ad135b5Christopher Siden#define	ZPOOL_CONFIG_UNSUP_FEAT		"unsup_feat"	/* not stored on disk */
6385722177Christopher Siden#define	ZPOOL_CONFIG_ENABLED_FEAT	"enabled_feat"	/* not stored on disk */
639ad135b5Christopher Siden#define	ZPOOL_CONFIG_CAN_RDONLY		"can_rdonly"	/* not stored on disk */
640ad135b5Christopher Siden#define	ZPOOL_CONFIG_FEATURES_FOR_READ	"features_for_read"
641ad135b5Christopher Siden#define	ZPOOL_CONFIG_FEATURE_STATS	"feature_stats"	/* not stored on disk */
642eb63303Tom Caputi#define	ZPOOL_CONFIG_ERRATA		"errata"	/* not stored on disk */
643215198aJoe Stein#define	ZPOOL_CONFIG_VDEV_TOP_ZAP	"com.delphix:vdev_zap_top"
644215198aJoe Stein#define	ZPOOL_CONFIG_VDEV_LEAF_ZAP	"com.delphix:vdev_zap_leaf"
645215198aJoe Stein#define	ZPOOL_CONFIG_HAS_PER_VDEV_ZAPS	"com.delphix:has_per_vdev_zaps"
646e4c795bTom Caputi#define	ZPOOL_CONFIG_RESILVER_DEFER	"com.datto:resilver_defer"
6476f79381Pavel Zakharov#define	ZPOOL_CONFIG_CACHEFILE		"cachefile"	/* not stored on disk */
648e0f1c0aOlaf Faaland#define	ZPOOL_CONFIG_MMP_STATE		"mmp_state"	/* not stored on disk */
649e0f1c0aOlaf Faaland#define	ZPOOL_CONFIG_MMP_TXG		"mmp_txg"	/* not stored on disk */
6504348eb9Olaf Faaland#define	ZPOOL_CONFIG_MMP_SEQ		"mmp_seq"	/* not stored on disk */
651e0f1c0aOlaf Faaland#define	ZPOOL_CONFIG_MMP_HOSTNAME	"mmp_hostname"	/* not stored on disk */
652e0f1c0aOlaf Faaland#define	ZPOOL_CONFIG_MMP_HOSTID		"mmp_hostid"	/* not stored on disk */
653663207aDon Brady#define	ZPOOL_CONFIG_ALLOCATION_BIAS	"alloc_bias"	/* not stored on disk */
654