usr/src/common/zfs/zfs_prop.c
changeset 5498 334b476844ca
parent 5378 111aa1baa84a
child 6168 51c045dcc498
equal deleted inserted replaced
5497:913e555b2de5 5498:334b476844ca
    25 
    25 
    26 #pragma ident	"%Z%%M%	%I%	%E% SMI"
    26 #pragma ident	"%Z%%M%	%I%	%E% SMI"
    27 
    27 
    28 #include <sys/zio.h>
    28 #include <sys/zio.h>
    29 #include <sys/spa.h>
    29 #include <sys/spa.h>
       
    30 #include <sys/u8_textprep.h>
    30 #include <sys/zfs_acl.h>
    31 #include <sys/zfs_acl.h>
    31 #include <sys/zfs_ioctl.h>
    32 #include <sys/zfs_ioctl.h>
    32 #include <sys/zfs_znode.h>
    33 #include <sys/zfs_znode.h>
    33 #include <sys/zfs_i18n.h>
       
    34 
    34 
    35 #include "zfs_prop.h"
    35 #include "zfs_prop.h"
    36 #include "zfs_deleg.h"
    36 #include "zfs_deleg.h"
    37 
    37 
    38 #if defined(_KERNEL)
    38 #if defined(_KERNEL)
   113 		{ "2",		2 },
   113 		{ "2",		2 },
   114 		{ "3",		3 },
   114 		{ "3",		3 },
   115 		{ NULL }
   115 		{ NULL }
   116 	};
   116 	};
   117 
   117 
       
   118 	/*
       
   119 	 * Use the unique flags we have to send to u8_strcmp() and/or
       
   120 	 * u8_textprep() to represent the various normalization property
       
   121 	 * values.
       
   122 	 */
   118 	static zprop_index_t normalize_table[] = {
   123 	static zprop_index_t normalize_table[] = {
   119 		{ "none",	ZFS_NORMALIZE_NONE },
   124 		{ "none",	0 },
   120 		{ "formD",	ZFS_NORMALIZE_D },
   125 		{ "formD",	U8_TEXTPREP_NFD },
   121 		{ "formKC",	ZFS_NORMALIZE_KC },
   126 		{ "formKC",	U8_TEXTPREP_NFKC },
   122 		{ "formC",	ZFS_NORMALIZE_C },
   127 		{ "formC",	U8_TEXTPREP_NFC },
   123 		{ "formKD",	ZFS_NORMALIZE_KD },
   128 		{ "formKD",	U8_TEXTPREP_NFKD },
   124 		{ NULL }
   129 		{ NULL }
   125 	};
   130 	};
   126 
   131 
   127 	static zprop_index_t version_table[] = {
   132 	static zprop_index_t version_table[] = {
   128 		{ "1",		1 },
   133 		{ "1",		1 },
   200 	/* readonly index (boolean) properties */
   205 	/* readonly index (boolean) properties */
   201 	register_index(ZFS_PROP_MOUNTED, "mounted", 0, PROP_READONLY,
   206 	register_index(ZFS_PROP_MOUNTED, "mounted", 0, PROP_READONLY,
   202 	    ZFS_TYPE_FILESYSTEM, "yes | no", "MOUNTED", boolean_table);
   207 	    ZFS_TYPE_FILESYSTEM, "yes | no", "MOUNTED", boolean_table);
   203 
   208 
   204 	/* set once index properties */
   209 	/* set once index properties */
   205 	register_index(ZFS_PROP_NORMALIZE, "normalization", ZFS_NORMALIZE_NONE,
   210 	register_index(ZFS_PROP_NORMALIZE, "normalization", 0,
   206 	    PROP_ONETIME, ZFS_TYPE_FILESYSTEM | ZFS_TYPE_SNAPSHOT,
   211 	    PROP_ONETIME, ZFS_TYPE_FILESYSTEM | ZFS_TYPE_SNAPSHOT,
   207 	    "none | formC | formD | formKC | formKD", "NORMALIZATION",
   212 	    "none | formC | formD | formKC | formKD", "NORMALIZATION",
   208 	    normalize_table);
   213 	    normalize_table);
   209 	register_index(ZFS_PROP_CASE, "casesensitivity", ZFS_CASE_SENSITIVE,
   214 	register_index(ZFS_PROP_CASE, "casesensitivity", ZFS_CASE_SENSITIVE,
   210 	    PROP_ONETIME, ZFS_TYPE_FILESYSTEM | ZFS_TYPE_SNAPSHOT,
   215 	    PROP_ONETIME, ZFS_TYPE_FILESYSTEM | ZFS_TYPE_SNAPSHOT,