]> git.proxmox.com Git - mirror_zfs.git/blobdiff - module/zcommon/zpool_prop.c
Introduce read/write kstats per dataset
[mirror_zfs.git] / module / zcommon / zpool_prop.c
index 6bde4f471a186a7a6371dd50c2e678a203572124..2d577793753e8a06685d0a6f7a1c093727d4b8d6 100644 (file)
@@ -21,7 +21,7 @@
 /*
  * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2011 Nexenta Systems, Inc. All rights reserved.
- * Copyright (c) 2012, 2014 by Delphix. All rights reserved.
+ * Copyright (c) 2012, 2018 by Delphix. All rights reserved.
  */
 
 #include <sys/zio.h>
@@ -32,9 +32,7 @@
 
 #include "zfs_prop.h"
 
-#if defined(_KERNEL)
-#include <sys/systm.h>
-#else
+#if !defined(_KERNEL)
 #include <stdlib.h>
 #include <string.h>
 #include <ctype.h>
@@ -81,6 +79,8 @@ zpool_prop_init(void)
            ZFS_TYPE_POOL, "<size>", "FREE");
        zprop_register_number(ZPOOL_PROP_FREEING, "freeing", 0, PROP_READONLY,
            ZFS_TYPE_POOL, "<size>", "FREEING");
+       zprop_register_number(ZPOOL_PROP_CHECKPOINT, "checkpoint", 0,
+           PROP_READONLY, ZFS_TYPE_POOL, "<size>", "CKPOINT");
        zprop_register_number(ZPOOL_PROP_LEAKED, "leaked", 0, PROP_READONLY,
            ZFS_TYPE_POOL, "<size>", "LEAKED");
        zprop_register_number(ZPOOL_PROP_ALLOCATED, "allocated", 0,
@@ -93,21 +93,21 @@ zpool_prop_init(void)
            ZFS_TYPE_POOL, "<size>", "CAP");
        zprop_register_number(ZPOOL_PROP_GUID, "guid", 0, PROP_READONLY,
            ZFS_TYPE_POOL, "<guid>", "GUID");
+       zprop_register_number(ZPOOL_PROP_LOAD_GUID, "load_guid", 0,
+           PROP_READONLY, ZFS_TYPE_POOL, "<load_guid>", "LOAD_GUID");
        zprop_register_number(ZPOOL_PROP_HEALTH, "health", 0, PROP_READONLY,
            ZFS_TYPE_POOL, "<state>", "HEALTH");
        zprop_register_number(ZPOOL_PROP_DEDUPRATIO, "dedupratio", 0,
            PROP_READONLY, ZFS_TYPE_POOL, "<1.00x or higher if deduped>",
            "DEDUP");
 
-       /* readonly onetime number properties */
-       zprop_register_number(ZPOOL_PROP_ASHIFT, "ashift", 0, PROP_ONETIME,
-           ZFS_TYPE_POOL, "<ashift, 9-13, or 0=default>", "ASHIFT");
-
        /* default number properties */
        zprop_register_number(ZPOOL_PROP_VERSION, "version", SPA_VERSION,
            PROP_DEFAULT, ZFS_TYPE_POOL, "<version>", "VERSION");
        zprop_register_number(ZPOOL_PROP_DEDUPDITTO, "dedupditto", 0,
            PROP_DEFAULT, ZFS_TYPE_POOL, "<threshold (min 100)>", "DEDUPDITTO");
+       zprop_register_number(ZPOOL_PROP_ASHIFT, "ashift", 0, PROP_DEFAULT,
+           ZFS_TYPE_POOL, "<ashift, 9-16, or 0=default>", "ASHIFT");
 
        /* default index (boolean) properties */
        zprop_register_index(ZPOOL_PROP_DELEGATION, "delegation", 1,
@@ -122,6 +122,9 @@ zpool_prop_init(void)
            PROP_DEFAULT, ZFS_TYPE_POOL, "on | off", "EXPAND", boolean_table);
        zprop_register_index(ZPOOL_PROP_READONLY, "readonly", 0,
            PROP_DEFAULT, ZFS_TYPE_POOL, "on | off", "RDONLY", boolean_table);
+       zprop_register_index(ZPOOL_PROP_MULTIHOST, "multihost", 0,
+           PROP_DEFAULT, ZFS_TYPE_POOL, "on | off", "MULTIHOST",
+           boolean_table);
 
        /* default index properties */
        zprop_register_index(ZPOOL_PROP_FAILUREMODE, "failmode",
@@ -131,6 +134,12 @@ zpool_prop_init(void)
        /* hidden properties */
        zprop_register_hidden(ZPOOL_PROP_NAME, "name", PROP_TYPE_STRING,
            PROP_READONLY, ZFS_TYPE_POOL, "NAME");
+       zprop_register_hidden(ZPOOL_PROP_MAXBLOCKSIZE, "maxblocksize",
+           PROP_TYPE_NUMBER, PROP_READONLY, ZFS_TYPE_POOL, "MAXBLOCKSIZE");
+       zprop_register_hidden(ZPOOL_PROP_TNAME, "tname", PROP_TYPE_STRING,
+           PROP_ONETIME, ZFS_TYPE_POOL, "TNAME");
+       zprop_register_hidden(ZPOOL_PROP_MAXDNODESIZE, "maxdnodesize",
+           PROP_TYPE_NUMBER, PROP_READONLY, ZFS_TYPE_POOL, "MAXDNODESIZE");
 }
 
 /*
@@ -164,6 +173,12 @@ zpool_prop_readonly(zpool_prop_t prop)
        return (zpool_prop_table[prop].pd_attr == PROP_READONLY);
 }
 
+boolean_t
+zpool_prop_setonce(zpool_prop_t prop)
+{
+       return (zpool_prop_table[prop].pd_attr == PROP_ONETIME);
+}
+
 const char *
 zpool_prop_default_string(zpool_prop_t prop)
 {
@@ -237,7 +252,7 @@ zpool_prop_align_right(zpool_prop_t prop)
 }
 #endif
 
-#if defined(_KERNEL) && defined(HAVE_SPL)
+#if defined(_KERNEL)
 /* zpool property functions */
 EXPORT_SYMBOL(zpool_prop_init);
 EXPORT_SYMBOL(zpool_prop_get_type);