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, |