]> git.proxmox.com Git - mirror_zfs-debian.git/blobdiff - module/zcommon/zfs_prop.c
Imported Upstream version 0.6.4.2
[mirror_zfs-debian.git] / module / zcommon / zfs_prop.c
index dd456b59a7084d5128f3d9d3b7bd0d99d32c5ade..192f8f2210becccd90769d2fbbb036fd5a880f66 100644 (file)
@@ -20,7 +20,7 @@
  */
 /*
  * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2012 by Delphix. All rights reserved.
+ * Copyright (c) 2011, 2014 by Delphix. All rights reserved.
  * Copyright (c) 2013 by Saso Kiselkov. All rights reserved.
  */
 
@@ -210,7 +210,18 @@ zfs_prop_init(void)
                { NULL }
        };
 
+       static zprop_index_t redundant_metadata_table[] = {
+               { "all",        ZFS_REDUNDANT_METADATA_ALL },
+               { "most",       ZFS_REDUNDANT_METADATA_MOST },
+               { NULL }
+       };
+
        /* inherit index properties */
+       zprop_register_index(ZFS_PROP_REDUNDANT_METADATA, "redundant_metadata",
+           ZFS_REDUNDANT_METADATA_ALL,
+           PROP_INHERIT, ZFS_TYPE_FILESYSTEM | ZFS_TYPE_VOLUME,
+           "all | most", "REDUND_MD",
+           redundant_metadata_table);
        zprop_register_index(ZFS_PROP_SYNC, "sync", ZFS_SYNC_STANDARD,
            PROP_INHERIT, ZFS_TYPE_FILESYSTEM | ZFS_TYPE_VOLUME,
            "standard | always | disabled", "SYNC",
@@ -284,6 +295,8 @@ zfs_prop_init(void)
        zprop_register_index(ZFS_PROP_NBMAND, "nbmand", 0, PROP_INHERIT,
            ZFS_TYPE_FILESYSTEM | ZFS_TYPE_SNAPSHOT, "on | off", "NBMAND",
            boolean_table);
+       zprop_register_index(ZFS_PROP_OVERLAY, "overlay", 0, PROP_INHERIT,
+           ZFS_TYPE_FILESYSTEM, "on | off", "OVERLAY", boolean_table);
 
        /* default index properties */
        zprop_register_index(ZFS_PROP_VERSION, "version", 0, PROP_DEFAULT,
@@ -327,7 +340,8 @@ zfs_prop_init(void)
            PROP_INHERIT, ZFS_TYPE_FILESYSTEM, "on | off | share(1M) options",
            "SHARENFS");
        zprop_register_string(ZFS_PROP_TYPE, "type", NULL, PROP_READONLY,
-           ZFS_TYPE_DATASET, "filesystem | volume | snapshot", "TYPE");
+           ZFS_TYPE_DATASET | ZFS_TYPE_BOOKMARK,
+           "filesystem | volume | snapshot | bookmark", "TYPE");
        zprop_register_string(ZFS_PROP_SHARESMB, "sharesmb", "off",
            PROP_INHERIT, ZFS_TYPE_FILESYSTEM,
            "on | off | sharemgr(1M) options", "SHARESMB");
@@ -391,7 +405,7 @@ zfs_prop_init(void)
            PROP_DEFAULT, ZFS_TYPE_FILESYSTEM | ZFS_TYPE_VOLUME,
            "<size> | none", "RESERV");
        zprop_register_number(ZFS_PROP_VOLSIZE, "volsize", 0, PROP_DEFAULT,
-           ZFS_TYPE_VOLUME, "<size>", "VOLSIZE");
+           ZFS_TYPE_SNAPSHOT | ZFS_TYPE_VOLUME, "<size>", "VOLSIZE");
        zprop_register_number(ZFS_PROP_REFQUOTA, "refquota", 0, PROP_DEFAULT,
            ZFS_TYPE_FILESYSTEM, "<size> | none", "REFQUOTA");
        zprop_register_number(ZFS_PROP_REFRESERVATION, "refreservation", 0,
@@ -405,18 +419,18 @@ zfs_prop_init(void)
 
        /* hidden properties */
        zprop_register_hidden(ZFS_PROP_CREATETXG, "createtxg", PROP_TYPE_NUMBER,
-           PROP_READONLY, ZFS_TYPE_DATASET, "CREATETXG");
+           PROP_READONLY, ZFS_TYPE_DATASET | ZFS_TYPE_BOOKMARK, "CREATETXG");
        zprop_register_hidden(ZFS_PROP_NUMCLONES, "numclones", PROP_TYPE_NUMBER,
            PROP_READONLY, ZFS_TYPE_SNAPSHOT, "NUMCLONES");
        zprop_register_hidden(ZFS_PROP_NAME, "name", PROP_TYPE_STRING,
-           PROP_READONLY, ZFS_TYPE_DATASET, "NAME");
+           PROP_READONLY, ZFS_TYPE_DATASET | ZFS_TYPE_BOOKMARK, "NAME");
        zprop_register_hidden(ZFS_PROP_ISCSIOPTIONS, "iscsioptions",
            PROP_TYPE_STRING, PROP_INHERIT, ZFS_TYPE_VOLUME, "ISCSIOPTIONS");
        zprop_register_hidden(ZFS_PROP_STMF_SHAREINFO, "stmf_sbd_lu",
            PROP_TYPE_STRING, PROP_INHERIT, ZFS_TYPE_VOLUME,
            "STMF_SBD_LU");
        zprop_register_hidden(ZFS_PROP_GUID, "guid", PROP_TYPE_NUMBER,
-           PROP_READONLY, ZFS_TYPE_DATASET, "GUID");
+           PROP_READONLY, ZFS_TYPE_DATASET | ZFS_TYPE_BOOKMARK, "GUID");
        zprop_register_hidden(ZFS_PROP_USERACCOUNTING, "useraccounting",
            PROP_TYPE_NUMBER, PROP_READONLY, ZFS_TYPE_DATASET,
            "USERACCOUNTING");
@@ -436,7 +450,7 @@ zfs_prop_init(void)
 
        /* oddball properties */
        zprop_register_impl(ZFS_PROP_CREATION, "creation", PROP_TYPE_NUMBER, 0,
-           NULL, PROP_READONLY, ZFS_TYPE_DATASET,
+           NULL, PROP_READONLY, ZFS_TYPE_DATASET | ZFS_TYPE_BOOKMARK,
            "<date>", "CREATION", B_FALSE, B_TRUE, NULL);
 }
 
@@ -555,9 +569,9 @@ zfs_prop_random_value(zfs_prop_t prop, uint64_t seed)
  * Returns TRUE if the property applies to any of the given dataset types.
  */
 boolean_t
-zfs_prop_valid_for_type(int prop, zfs_type_t types)
+zfs_prop_valid_for_type(int prop, zfs_type_t types, boolean_t headcheck)
 {
-       return (zprop_valid_for_type(prop, types));
+       return (zprop_valid_for_type(prop, types, headcheck));
 }
 
 zprop_type_t
@@ -664,12 +678,19 @@ zfs_prop_align_right(zfs_prop_t prop)
 #endif
 
 #if defined(_KERNEL) && defined(HAVE_SPL)
+static int __init
+zcommon_init(void)
+{
+       return (0);
+}
 
-static int zcommon_init(void) { return 0; }
-static int zcommon_fini(void) { return 0; }
+static void __exit
+zcommon_fini(void)
+{
+}
 
-spl_module_init(zcommon_init);
-spl_module_exit(zcommon_fini);
+module_init(zcommon_init);
+module_exit(zcommon_fini);
 
 MODULE_DESCRIPTION("Generic ZFS support");
 MODULE_AUTHOR(ZFS_META_AUTHOR);