Print this page
OS-1566 filesystem limits for ZFS datasets

@@ -1795,10 +1795,12 @@
         case ZFS_PROP_VOLSIZE:
         case ZFS_PROP_QUOTA:
         case ZFS_PROP_REFQUOTA:
         case ZFS_PROP_RESERVATION:
         case ZFS_PROP_REFRESERVATION:
+        case ZFS_PROP_FILESYSTEM_LIMIT:
+        case ZFS_PROP_SNAPSHOT_LIMIT:
                 *val = getprop_uint64(zhp, prop, source);
 
                 if (*source == NULL) {
                         /* not default, must be local */
                         *source = zhp->zfs_name;

@@ -2213,10 +2215,32 @@
                                 (void) snprintf(propbuf, proplen, "%llu",
                                     (u_longlong_t)val);
                         else
                                 zfs_nicenum(val, propbuf, proplen);
                 }
+                break;
+
+        case ZFS_PROP_FILESYSTEM_LIMIT:
+        case ZFS_PROP_SNAPSHOT_LIMIT:
+
+                if (get_numeric_property(zhp, prop, src, &source, &val) != 0)
+                        return (-1);
+
+                /*
+                 * If limit is UINT64_MAX, we translate this into 'none' (unless
+                 * literal is set), and indicate that it's the default value.
+                 * Otherwise, we print the number nicely and indicate that it's
+                 * set locally.
+                 */
+                if (literal) {
+                        (void) snprintf(propbuf, proplen, "%llu",
+                            (u_longlong_t)val);
+                } else if (val == UINT64_MAX) {
+                        (void) strlcpy(propbuf, "none", proplen);
+                } else {
+                        zfs_nicenum(val, propbuf, proplen);
+                }
                 break;
 
         case ZFS_PROP_REFRATIO:
         case ZFS_PROP_COMPRESSRATIO:
                 if (get_numeric_property(zhp, prop, src, &source, &val) != 0)