Print this page
NEX-14164 'modified' property doesn't work for autosnapshots
Reviewed by: Alex Deiter <alex.deiter@nexenta.com>
Reviewed by: Alexey Komarov <alexey.komarov@nexenta.com>
Reviewed by: Rick McNeal <rick.mcneal@nexenta.com>
Reviewed by: Yuri Pankov <yuri.pankov@nexenta.com>
NEX-9406 Add a property to show that a dataset has been modified since a snapshot
Reviewed by: Alexey Komarov <alexey.komarov@nexenta.com>
Reviewed by: Sanjay Nadkarni <sanjay.nadkarni@nexenta.com>
NEX-9436 Rate limiting controls (was QoS) per ZFS dataset, updates from demo
Reviewed by: Gordon Ross <gordon.ross@nexenta.com>
Reviewed by: Rob Gittins <rob.gittins@nexenta.com>
NEX-8852 Quality-of-Service (QoS) controls per NFS share
Reviewed by: Rob Gittins <rob.gittins@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
Reviewed by: Sanjay Nadkarni <sanjay.nadkarni@nexenta.com>
NEX-6269 Unwanted inheritance of the sharesmb ZFS property
Reviewed by: Yuri Pankov <yuri.pankov@nexeneta.com>
Reviewed by: Rick McNeal <rick.mcneal@nexeneta.com>
NEX-5795 Rename 'wrc' as 'wbc' in the source and in the tech docs
Reviewed by: Alex Aizman <alex.aizman@nexenta.com>
Reviewed by: Sanjay Nadkarni <sanjay.nadkarni@nexenta.com>
Reviewed by: Alek Pinchuk <alek.pinchuk@nexenta.com>
NEX-5318 Cleanup specialclass property (obsolete, not used) and fix related meta-to-special case
Reviewed by: Roman Strashkin <roman.strashkin@nexenta.com>
Reviewed by: Alek Pinchuk <alek.pinchuk@nexenta.com>
NEX-5058 WBC: Race between the purging of window and opening new one
Reviewed by: Alek Pinchuk <alek.pinchuk@nexenta.com>
Reviewed by: Alex Aizman <alex.aizman@nexenta.com>
NEX-2830 ZFS smart compression
Reviewed by: Alek Pinchuk <alek.pinchuk@nexenta.com>
Reviewed by: Roman Strashkin <roman.strashkin@nexenta.com>
NEX-4934 Add capability to remove special vdev
Reviewed by: Alex Aizman <alex.aizman@nexenta.com>
Reviewed by: Alek Pinchuk <alek.pinchuk@nexenta.com>
2605 want to resume interrupted zfs send
Reviewed by: George Wilson <george.wilson@delphix.com>
Reviewed by: Paul Dagnelie <pcd@delphix.com>
Reviewed by: Richard Elling <Richard.Elling@RichardElling.com>
Reviewed by: Xin Li <delphij@freebsd.org>
Reviewed by: Arne Jansen <sensille@gmx.net>
Approved by: Dan McDonald <danmcd@omniti.com>
4185 add new cryptographic checksums to ZFS: SHA-512, Skein, Edon-R (fix studio build)
4185 add new cryptographic checksums to ZFS: SHA-512, Skein, Edon-R
Reviewed by: George Wilson <george.wilson@delphix.com>
Reviewed by: Prakash Surya <prakash.surya@delphix.com>
Reviewed by: Saso Kiselkov <saso.kiselkov@nexenta.com>
Reviewed by: Richard Lowe <richlowe@richlowe.net>
Approved by: Garrett D'Amore <garrett@damore.org>
NEX-4476 WRC: Allow to use write back cache per tree of datasets
Reviewed by: Alek Pinchuk <alek.pinchuk@nexenta.com>
Reviewed by: Alex Aizman <alex.aizman@nexenta.com>
Revert "NEX-4476 WRC: Allow to use write back cache per tree of datasets"
This reverts commit fe97b74444278a6f36fec93179133641296312da.
NEX-4476 WRC: Allow to use write back cache per tree of datasets
Reviewed by: Alek Pinchuk <alek.pinchuk@nexenta.com>
Reviewed by: Alex Aizman <alex.aizman@nexenta.com>
NEX-4044 remove sha1crc32 in preparation with upstream merge of edon-r and skien
Reviewed by: Saso Kiselkov <saso.kiselkov@nexenta.com>
Reviewed by: Alek Pinchuk <alek@nexenta.com>
Conflicts:
        usr/src/uts/common/fs/zfs/sys/zio_checksum.h
NEX-3669 Faults for fans that don't exist
Reviewed by: Jeffry Molanus <jeffry.molanus@nexenta.com>
NEX-3891 Hide the snapshots that belong to in-kernel autosnap-service
Reviewed by: Josef 'Jeff' Sipek <josef.sipek@nexenta.com>
Reviewed by: Alek Pinchuk <alek@nexenta.com>
NEX-3558 KRRP Integration
OS-80 support for vdev and CoS properties for the new I/O scheduler
OS-95 lint warning introduced by OS-61
Make special vdev subtree topology the same as regular vdev subtree to simplify testcase setup
Fixup merge issues
Issue #7: add cacheability to the properties
          Contributors: Boris Protopopov
Issues #7: Reconsile L2ARC and "special" use by datasets
Support for secondarycache=data option
Align mutex tables in arc.c and dbuf.c to 64 bytes (cache line), place each kmutex_t on cache line by itself to avoid false sharing
Fixup merge results
re #12585 rb4049 ZFS++ work port - refactoring to improve separation of open/closed code, bug fixes, performance improvements - open code
Bug 11205: add missing libzfs_closed_stubs.c to fix opensource-only build.
ZFS plus work: special vdevs, cos, cos/vdev properties

Split Close
Expand all
Collapse all
          --- old/usr/src/common/zfs/zfs_prop.c
          +++ new/usr/src/common/zfs/zfs_prop.c
↓ open down ↓ 15 lines elided ↑ open up ↑
  16   16   * fields enclosed by brackets "[]" replaced with your own identifying
  17   17   * information: Portions Copyright [yyyy] [name of copyright owner]
  18   18   *
  19   19   * CDDL HEADER END
  20   20   */
  21   21  /*
  22   22   * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
  23   23   * Copyright (c) 2011, 2016 by Delphix. All rights reserved.
  24   24   * Copyright (c) 2013 by Saso Kiselkov. All rights reserved.
  25   25   * Copyright (c) 2014 Integros [integros.com]
       26 + * Copyright 2017 Nexenta Systems, Inc. All rights reserved.
  26   27   * Copyright 2016, Joyent, Inc.
  27   28   */
  28   29  
  29   30  /* Portions Copyright 2010 Robert Milkowski */
  30   31  
  31   32  #include <sys/zio.h>
  32   33  #include <sys/spa.h>
       34 +#include <sys/special.h>
  33   35  #include <sys/u8_textprep.h>
  34   36  #include <sys/zfs_acl.h>
  35   37  #include <sys/zfs_ioctl.h>
  36   38  #include <sys/zfs_znode.h>
  37   39  
  38   40  #include "zfs_prop.h"
  39   41  #include "zfs_deleg.h"
  40   42  
  41   43  #if defined(_KERNEL)
  42   44  #include <sys/systm.h>
↓ open down ↓ 139 lines elided ↑ open up ↑
 182  184                  { "on",         1 },
 183  185                  { NULL }
 184  186          };
 185  187  
 186  188          static zprop_index_t logbias_table[] = {
 187  189                  { "latency",    ZFS_LOGBIAS_LATENCY },
 188  190                  { "throughput", ZFS_LOGBIAS_THROUGHPUT },
 189  191                  { NULL }
 190  192          };
 191  193  
      194 +        static zprop_index_t wbc_modes_table[] = {
      195 +                { "off",                ZFS_WBC_MODE_OFF },
      196 +                { "on",                 ZFS_WBC_MODE_ON },
      197 +                { NULL }
      198 +        };
      199 +
 192  200          static zprop_index_t canmount_table[] = {
 193  201                  { "off",        ZFS_CANMOUNT_OFF },
 194  202                  { "on",         ZFS_CANMOUNT_ON },
 195  203                  { "noauto",     ZFS_CANMOUNT_NOAUTO },
 196  204                  { NULL }
 197  205          };
 198  206  
 199      -        static zprop_index_t cache_table[] = {
      207 +        static zprop_index_t primary_cache_table[] = {
 200  208                  { "none",       ZFS_CACHE_NONE },
 201  209                  { "metadata",   ZFS_CACHE_METADATA },
 202  210                  { "all",        ZFS_CACHE_ALL },
 203  211                  { NULL }
 204  212          };
 205  213  
      214 +        static zprop_index_t secondary_cache_table[] = {
      215 +                { "none",       ZFS_CACHE_NONE },
      216 +                { "metadata",   ZFS_CACHE_METADATA },
      217 +                { "all",        ZFS_CACHE_ALL },
      218 +                { "data",       ZFS_CACHE_DATA },
      219 +                { NULL }
      220 +        };
      221 +
 206  222          static zprop_index_t sync_table[] = {
 207  223                  { "standard",   ZFS_SYNC_STANDARD },
 208  224                  { "always",     ZFS_SYNC_ALWAYS },
 209  225                  { "disabled",   ZFS_SYNC_DISABLED },
 210  226                  { NULL }
 211  227          };
 212  228  
 213  229          static zprop_index_t redundant_metadata_table[] = {
 214  230                  { "all",        ZFS_REDUNDANT_METADATA_ALL },
 215  231                  { "most",       ZFS_REDUNDANT_METADATA_MOST },
 216  232                  { NULL }
 217  233          };
 218  234  
      235 +        static zprop_index_t meta_placement_table[] = {
      236 +                { "off",        META_PLACEMENT_OFF},
      237 +                { "on",         META_PLACEMENT_ON},
      238 +                { "dual",       META_PLACEMENT_DUAL},
      239 +                { NULL }
      240 +        };
      241 +
 219  242          /* inherit index properties */
 220  243          zprop_register_index(ZFS_PROP_REDUNDANT_METADATA, "redundant_metadata",
 221  244              ZFS_REDUNDANT_METADATA_ALL,
 222  245              PROP_INHERIT, ZFS_TYPE_FILESYSTEM | ZFS_TYPE_VOLUME,
 223  246              "all | most", "REDUND_MD",
 224  247              redundant_metadata_table);
 225  248          zprop_register_index(ZFS_PROP_SYNC, "sync", ZFS_SYNC_STANDARD,
 226  249              PROP_INHERIT, ZFS_TYPE_FILESYSTEM | ZFS_TYPE_VOLUME,
 227  250              "standard | always | disabled", "SYNC",
 228  251              sync_table);
↓ open down ↓ 20 lines elided ↑ open up ↑
 249  272              acl_mode_table);
 250  273          zprop_register_index(ZFS_PROP_ACLINHERIT, "aclinherit",
 251  274              ZFS_ACL_RESTRICTED, PROP_INHERIT, ZFS_TYPE_FILESYSTEM,
 252  275              "discard | noallow | restricted | passthrough | passthrough-x",
 253  276              "ACLINHERIT", acl_inherit_table);
 254  277          zprop_register_index(ZFS_PROP_COPIES, "copies", 1, PROP_INHERIT,
 255  278              ZFS_TYPE_FILESYSTEM | ZFS_TYPE_VOLUME,
 256  279              "1 | 2 | 3", "COPIES", copies_table);
 257  280          zprop_register_index(ZFS_PROP_PRIMARYCACHE, "primarycache",
 258  281              ZFS_CACHE_ALL, PROP_INHERIT,
 259      -            ZFS_TYPE_FILESYSTEM | ZFS_TYPE_SNAPSHOT | ZFS_TYPE_VOLUME,
 260      -            "all | none | metadata", "PRIMARYCACHE", cache_table);
      282 +            ZFS_TYPE_FILESYSTEM | ZFS_TYPE_SNAPSHOT | ZFS_TYPE_AUTOSNAP |
      283 +            ZFS_TYPE_VOLUME,
      284 +            "all | none | metadata", "PRIMARYCACHE", primary_cache_table);
 261  285          zprop_register_index(ZFS_PROP_SECONDARYCACHE, "secondarycache",
 262  286              ZFS_CACHE_ALL, PROP_INHERIT,
 263      -            ZFS_TYPE_FILESYSTEM | ZFS_TYPE_SNAPSHOT | ZFS_TYPE_VOLUME,
 264      -            "all | none | metadata", "SECONDARYCACHE", cache_table);
      287 +            ZFS_TYPE_FILESYSTEM | ZFS_TYPE_SNAPSHOT | ZFS_TYPE_AUTOSNAP |
      288 +            ZFS_TYPE_VOLUME,
      289 +            "all | none | metadata | data", "SECONDARYCACHE",
      290 +            secondary_cache_table);
 265  291          zprop_register_index(ZFS_PROP_LOGBIAS, "logbias", ZFS_LOGBIAS_LATENCY,
 266  292              PROP_INHERIT, ZFS_TYPE_FILESYSTEM | ZFS_TYPE_VOLUME,
 267  293              "latency | throughput", "LOGBIAS", logbias_table);
      294 +        zprop_register_index(ZFS_PROP_WBC_MODE, "wbc_mode", ZFS_WBC_MODE_OFF,
      295 +            PROP_INHERIT, ZFS_TYPE_FILESYSTEM | ZFS_TYPE_VOLUME,
      296 +            "off | on", "WBC_MODE", wbc_modes_table);
      297 +        zprop_register_index(ZFS_PROP_ZPL_META_TO_METADEV,
      298 +            "zpl_meta_to_metadev", META_PLACEMENT_OFF, PROP_INHERIT,
      299 +            ZFS_TYPE_FILESYSTEM | ZFS_TYPE_SNAPSHOT | ZFS_TYPE_AUTOSNAP |
      300 +            ZFS_TYPE_VOLUME,
      301 +            "on | dual | off", "ZPLMETA_TO_MD", meta_placement_table);
 268  302  
 269  303          /* inherit index (boolean) properties */
 270  304          zprop_register_index(ZFS_PROP_ATIME, "atime", 1, PROP_INHERIT,
 271  305              ZFS_TYPE_FILESYSTEM, "on | off", "ATIME", boolean_table);
 272  306          zprop_register_index(ZFS_PROP_DEVICES, "devices", 1, PROP_INHERIT,
 273      -            ZFS_TYPE_FILESYSTEM | ZFS_TYPE_SNAPSHOT, "on | off", "DEVICES",
 274      -            boolean_table);
      307 +            ZFS_TYPE_FILESYSTEM | ZFS_TYPE_SNAPSHOT | ZFS_TYPE_AUTOSNAP,
      308 +            "on | off", "DEVICES", boolean_table);
 275  309          zprop_register_index(ZFS_PROP_EXEC, "exec", 1, PROP_INHERIT,
 276      -            ZFS_TYPE_FILESYSTEM | ZFS_TYPE_SNAPSHOT, "on | off", "EXEC",
 277      -            boolean_table);
      310 +            ZFS_TYPE_FILESYSTEM | ZFS_TYPE_SNAPSHOT | ZFS_TYPE_AUTOSNAP,
      311 +            "on | off", "EXEC", boolean_table);
 278  312          zprop_register_index(ZFS_PROP_SETUID, "setuid", 1, PROP_INHERIT,
 279      -            ZFS_TYPE_FILESYSTEM | ZFS_TYPE_SNAPSHOT, "on | off", "SETUID",
 280      -            boolean_table);
      313 +            ZFS_TYPE_FILESYSTEM | ZFS_TYPE_SNAPSHOT | ZFS_TYPE_AUTOSNAP,
      314 +            "on | off", "SETUID", boolean_table);
 281  315          zprop_register_index(ZFS_PROP_READONLY, "readonly", 0, PROP_INHERIT,
 282  316              ZFS_TYPE_FILESYSTEM | ZFS_TYPE_VOLUME, "on | off", "RDONLY",
 283  317              boolean_table);
 284  318          zprop_register_index(ZFS_PROP_ZONED, "zoned", 0, PROP_INHERIT,
 285  319              ZFS_TYPE_FILESYSTEM, "on | off", "ZONED", boolean_table);
 286  320          zprop_register_index(ZFS_PROP_XATTR, "xattr", 1, PROP_INHERIT,
 287      -            ZFS_TYPE_FILESYSTEM | ZFS_TYPE_SNAPSHOT, "on | off", "XATTR",
 288      -            boolean_table);
      321 +            ZFS_TYPE_FILESYSTEM | ZFS_TYPE_SNAPSHOT | ZFS_TYPE_AUTOSNAP,
      322 +            "on | off", "XATTR", boolean_table);
 289  323          zprop_register_index(ZFS_PROP_VSCAN, "vscan", 0, PROP_INHERIT,
 290  324              ZFS_TYPE_FILESYSTEM, "on | off", "VSCAN",
 291  325              boolean_table);
 292  326          zprop_register_index(ZFS_PROP_NBMAND, "nbmand", 0, PROP_INHERIT,
 293      -            ZFS_TYPE_FILESYSTEM | ZFS_TYPE_SNAPSHOT, "on | off", "NBMAND",
      327 +            ZFS_TYPE_FILESYSTEM | ZFS_TYPE_SNAPSHOT | ZFS_TYPE_AUTOSNAP,
      328 +            "on | off", "NBMAND", boolean_table);
      329 +        zprop_register_index(ZFS_PROP_SMARTCOMPRESSION, "smartcompression", 1,
      330 +            PROP_INHERIT, ZFS_TYPE_FILESYSTEM, "on | off", "SMARTCOMPRESSION",
 294  331              boolean_table);
 295  332  
 296  333          /* default index properties */
 297  334          zprop_register_index(ZFS_PROP_VERSION, "version", 0, PROP_DEFAULT,
 298      -            ZFS_TYPE_FILESYSTEM | ZFS_TYPE_SNAPSHOT,
      335 +            ZFS_TYPE_FILESYSTEM | ZFS_TYPE_SNAPSHOT | ZFS_TYPE_AUTOSNAP,
 299  336              "1 | 2 | 3 | 4 | 5 | current", "VERSION", version_table);
 300  337          zprop_register_index(ZFS_PROP_CANMOUNT, "canmount", ZFS_CANMOUNT_ON,
 301  338              PROP_DEFAULT, ZFS_TYPE_FILESYSTEM, "on | off | noauto",
 302  339              "CANMOUNT", canmount_table);
 303  340  
 304  341          /* readonly index (boolean) properties */
 305  342          zprop_register_index(ZFS_PROP_MOUNTED, "mounted", 0, PROP_READONLY,
 306  343              ZFS_TYPE_FILESYSTEM, "yes | no", "MOUNTED", boolean_table);
 307  344          zprop_register_index(ZFS_PROP_DEFER_DESTROY, "defer_destroy", 0,
 308      -            PROP_READONLY, ZFS_TYPE_SNAPSHOT, "yes | no", "DEFER_DESTROY",
 309      -            boolean_table);
      345 +            PROP_READONLY, ZFS_TYPE_SNAPSHOT | ZFS_TYPE_AUTOSNAP,
      346 +            "yes | no", "DEFER_DESTROY", boolean_table);
 310  347  
 311  348          /* set once index properties */
 312  349          zprop_register_index(ZFS_PROP_NORMALIZE, "normalization", 0,
 313      -            PROP_ONETIME, ZFS_TYPE_FILESYSTEM | ZFS_TYPE_SNAPSHOT,
      350 +            PROP_ONETIME, ZFS_TYPE_FILESYSTEM | ZFS_TYPE_SNAPSHOT |
      351 +            ZFS_TYPE_AUTOSNAP,
 314  352              "none | formC | formD | formKC | formKD", "NORMALIZATION",
 315  353              normalize_table);
 316  354          zprop_register_index(ZFS_PROP_CASE, "casesensitivity",
 317  355              ZFS_CASE_SENSITIVE, PROP_ONETIME, ZFS_TYPE_FILESYSTEM |
 318      -            ZFS_TYPE_SNAPSHOT,
      356 +            ZFS_TYPE_SNAPSHOT | ZFS_TYPE_AUTOSNAP,
 319  357              "sensitive | insensitive | mixed", "CASE", case_table);
 320  358  
 321  359          /* set once index (boolean) properties */
 322  360          zprop_register_index(ZFS_PROP_UTF8ONLY, "utf8only", 0, PROP_ONETIME,
 323      -            ZFS_TYPE_FILESYSTEM | ZFS_TYPE_SNAPSHOT,
      361 +            ZFS_TYPE_FILESYSTEM | ZFS_TYPE_SNAPSHOT | ZFS_TYPE_AUTOSNAP,
 324  362              "on | off", "UTF8ONLY", boolean_table);
 325  363  
 326  364          /* string properties */
 327  365          zprop_register_string(ZFS_PROP_ORIGIN, "origin", NULL, PROP_READONLY,
 328  366              ZFS_TYPE_FILESYSTEM | ZFS_TYPE_VOLUME, "<snapshot>", "ORIGIN");
 329  367          zprop_register_string(ZFS_PROP_CLONES, "clones", NULL, PROP_READONLY,
 330      -            ZFS_TYPE_SNAPSHOT, "<dataset>[,...]", "CLONES");
      368 +            ZFS_TYPE_SNAPSHOT | ZFS_TYPE_AUTOSNAP, "<dataset>[,...]", "CLONES");
 331  369          zprop_register_string(ZFS_PROP_MOUNTPOINT, "mountpoint", "/",
 332  370              PROP_INHERIT, ZFS_TYPE_FILESYSTEM, "<path> | legacy | none",
 333  371              "MOUNTPOINT");
 334  372          zprop_register_string(ZFS_PROP_SHARENFS, "sharenfs", "off",
 335  373              PROP_INHERIT, ZFS_TYPE_FILESYSTEM, "on | off | share(1M) options",
 336  374              "SHARENFS");
 337  375          zprop_register_string(ZFS_PROP_TYPE, "type", NULL, PROP_READONLY,
 338  376              ZFS_TYPE_DATASET | ZFS_TYPE_BOOKMARK,
 339      -            "filesystem | volume | snapshot | bookmark", "TYPE");
      377 +            "filesystem | volume | snapshot | autosnap | bookmark", "TYPE");
 340  378          zprop_register_string(ZFS_PROP_SHARESMB, "sharesmb", "off",
 341      -            PROP_INHERIT, ZFS_TYPE_FILESYSTEM,
      379 +            PROP_DEFAULT, ZFS_TYPE_FILESYSTEM,
 342  380              "on | off | sharemgr(1M) options", "SHARESMB");
 343  381          zprop_register_string(ZFS_PROP_MLSLABEL, "mlslabel",
 344  382              ZFS_MLSLABEL_DEFAULT, PROP_INHERIT, ZFS_TYPE_DATASET,
 345  383              "<sensitivity label>", "MLSLABEL");
 346  384          zprop_register_string(ZFS_PROP_RECEIVE_RESUME_TOKEN,
 347  385              "receive_resume_token",
 348  386              NULL, PROP_READONLY, ZFS_TYPE_FILESYSTEM | ZFS_TYPE_VOLUME,
 349  387              "<string token>", "RESUMETOK");
 350  388  
 351  389          /* readonly number properties */
↓ open down ↓ 18 lines elided ↑ open up ↑
 370  408          zprop_register_number(ZFS_PROP_USEDDS, "usedbydataset", 0,
 371  409              PROP_READONLY, ZFS_TYPE_FILESYSTEM | ZFS_TYPE_VOLUME, "<size>",
 372  410              "USEDDS");
 373  411          zprop_register_number(ZFS_PROP_USEDCHILD, "usedbychildren", 0,
 374  412              PROP_READONLY, ZFS_TYPE_FILESYSTEM | ZFS_TYPE_VOLUME, "<size>",
 375  413              "USEDCHILD");
 376  414          zprop_register_number(ZFS_PROP_USEDREFRESERV, "usedbyrefreservation", 0,
 377  415              PROP_READONLY,
 378  416              ZFS_TYPE_FILESYSTEM | ZFS_TYPE_VOLUME, "<size>", "USEDREFRESERV");
 379  417          zprop_register_number(ZFS_PROP_USERREFS, "userrefs", 0, PROP_READONLY,
 380      -            ZFS_TYPE_SNAPSHOT, "<count>", "USERREFS");
      418 +            ZFS_TYPE_SNAPSHOT | ZFS_TYPE_AUTOSNAP, "<count>", "USERREFS");
 381  419          zprop_register_number(ZFS_PROP_WRITTEN, "written", 0, PROP_READONLY,
 382  420              ZFS_TYPE_DATASET, "<size>", "WRITTEN");
 383  421          zprop_register_number(ZFS_PROP_LOGICALUSED, "logicalused", 0,
 384  422              PROP_READONLY, ZFS_TYPE_FILESYSTEM | ZFS_TYPE_VOLUME, "<size>",
 385  423              "LUSED");
 386  424          zprop_register_number(ZFS_PROP_LOGICALREFERENCED, "logicalreferenced",
 387  425              0, PROP_READONLY, ZFS_TYPE_DATASET, "<size>", "LREFER");
 388  426          zprop_register_number(ZFS_PROP_FILESYSTEM_COUNT, "filesystem_count",
 389  427              UINT64_MAX, PROP_READONLY, ZFS_TYPE_FILESYSTEM,
 390  428              "<count>", "FSCOUNT");
↓ open down ↓ 13 lines elided ↑ open up ↑
 404  442              ZFS_TYPE_FILESYSTEM, "<size> | none", "REFQUOTA");
 405  443          zprop_register_number(ZFS_PROP_REFRESERVATION, "refreservation", 0,
 406  444              PROP_DEFAULT, ZFS_TYPE_FILESYSTEM | ZFS_TYPE_VOLUME,
 407  445              "<size> | none", "REFRESERV");
 408  446          zprop_register_number(ZFS_PROP_FILESYSTEM_LIMIT, "filesystem_limit",
 409  447              UINT64_MAX, PROP_DEFAULT, ZFS_TYPE_FILESYSTEM,
 410  448              "<count> | none", "FSLIMIT");
 411  449          zprop_register_number(ZFS_PROP_SNAPSHOT_LIMIT, "snapshot_limit",
 412  450              UINT64_MAX, PROP_DEFAULT, ZFS_TYPE_FILESYSTEM | ZFS_TYPE_VOLUME,
 413  451              "<count> | none", "SSLIMIT");
      452 +        zprop_register_number(ZFS_PROP_RATE_LIMIT, "rate_limit",
      453 +            UINT64_MAX, PROP_DEFAULT, ZFS_TYPE_FILESYSTEM,
      454 +            "<count> | none", "RATELIMIT");
 414  455  
 415  456          /* inherit number properties */
 416  457          zprop_register_number(ZFS_PROP_RECORDSIZE, "recordsize",
 417  458              SPA_OLD_MAXBLOCKSIZE, PROP_INHERIT,
 418  459              ZFS_TYPE_FILESYSTEM, "512 to 1M, power of 2", "RECSIZE");
 419  460  
 420  461          /* hidden properties */
 421  462          zprop_register_hidden(ZFS_PROP_CREATETXG, "createtxg", PROP_TYPE_NUMBER,
 422  463              PROP_READONLY, ZFS_TYPE_DATASET | ZFS_TYPE_BOOKMARK, "CREATETXG");
 423      -        zprop_register_hidden(ZFS_PROP_REMAPTXG, "remaptxg", PROP_TYPE_NUMBER,
 424      -            PROP_READONLY, ZFS_TYPE_DATASET, "REMAPTXG");
 425  464          zprop_register_hidden(ZFS_PROP_NUMCLONES, "numclones", PROP_TYPE_NUMBER,
 426  465              PROP_READONLY, ZFS_TYPE_SNAPSHOT, "NUMCLONES");
 427  466          zprop_register_hidden(ZFS_PROP_NAME, "name", PROP_TYPE_STRING,
 428  467              PROP_READONLY, ZFS_TYPE_DATASET | ZFS_TYPE_BOOKMARK, "NAME");
 429  468          zprop_register_hidden(ZFS_PROP_ISCSIOPTIONS, "iscsioptions",
 430  469              PROP_TYPE_STRING, PROP_INHERIT, ZFS_TYPE_VOLUME, "ISCSIOPTIONS");
 431  470          zprop_register_hidden(ZFS_PROP_STMF_SHAREINFO, "stmf_sbd_lu",
 432  471              PROP_TYPE_STRING, PROP_INHERIT, ZFS_TYPE_VOLUME,
 433  472              "STMF_SBD_LU");
 434  473          zprop_register_hidden(ZFS_PROP_GUID, "guid", PROP_TYPE_NUMBER,
↓ open down ↓ 2 lines elided ↑ open up ↑
 437  476              PROP_TYPE_NUMBER, PROP_READONLY, ZFS_TYPE_DATASET,
 438  477              "USERACCOUNTING");
 439  478          zprop_register_hidden(ZFS_PROP_UNIQUE, "unique", PROP_TYPE_NUMBER,
 440  479              PROP_READONLY, ZFS_TYPE_DATASET, "UNIQUE");
 441  480          zprop_register_hidden(ZFS_PROP_OBJSETID, "objsetid", PROP_TYPE_NUMBER,
 442  481              PROP_READONLY, ZFS_TYPE_DATASET, "OBJSETID");
 443  482          zprop_register_hidden(ZFS_PROP_INCONSISTENT, "inconsistent",
 444  483              PROP_TYPE_NUMBER, PROP_READONLY, ZFS_TYPE_DATASET, "INCONSISTENT");
 445  484          zprop_register_hidden(ZFS_PROP_PREV_SNAP, "prevsnap", PROP_TYPE_STRING,
 446  485              PROP_READONLY, ZFS_TYPE_FILESYSTEM | ZFS_TYPE_VOLUME, "PREVSNAP");
      486 +        zprop_register_hidden(ZFS_PROP_LSTXG, "lstxg", PROP_TYPE_NUMBER,
      487 +            PROP_READONLY, ZFS_TYPE_DATASET, "LSTXG");
      488 +        zprop_register_index_hidden(ZFS_PROP_MODIFIED, "modified", 0,
      489 +            PROP_READONLY, ZFS_TYPE_SNAPSHOT | ZFS_TYPE_AUTOSNAP, "yes | no",
      490 +            "MODIFIED", boolean_table);
 447  491  
 448  492          /* oddball properties */
 449  493          zprop_register_impl(ZFS_PROP_CREATION, "creation", PROP_TYPE_NUMBER, 0,
 450  494              NULL, PROP_READONLY, ZFS_TYPE_DATASET | ZFS_TYPE_BOOKMARK,
 451  495              "<date>", "CREATION", B_FALSE, B_TRUE, NULL);
 452  496  }
 453  497  
 454  498  boolean_t
 455  499  zfs_prop_delegatable(zfs_prop_t prop)
 456  500  {
↓ open down ↓ 228 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX