Print this page
2619 asynchronous destruction of ZFS file systems
2747 SPA versioning with zfs feature flags
Reviewed by: Matt Ahrens <mahrens@delphix.com>
Reviewed by: George Wilson <gwilson@delphix.com>
Reviewed by: Richard Lowe <richlowe@richlowe.net>
Reviewed by: Dan Kruchinin <dan.kruchinin@gmail.com>
Approved by: Dan McDonald <danmcd@nexenta.com>
        
@@ -19,10 +19,11 @@
  * CDDL HEADER END
  */
 /*
  * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2011 Nexenta Systems, Inc. All rights reserved.
+ * Copyright (c) 2012 by Delphix. All rights reserved.
  */
 
 /* Portions Copyright 2010 Robert Milkowski */
 
 #include <mdb/mdb_ctf.h>
@@ -1235,10 +1236,13 @@
                         aux = "VERS_NEWER";
                         break;
                 case VDEV_AUX_VERSION_OLDER:
                         aux = "VERS_OLDER";
                         break;
+                case VDEV_AUX_UNSUP_FEAT:
+                        aux = "UNSUP_FEAT";
+                        break;
                 case VDEV_AUX_SPARED:
                         aux = "SPARED";
                         break;
                 case VDEV_AUX_ERR_EXCEEDED:
                         aux = "ERR_EXCEEDED";
@@ -2180,11 +2184,11 @@
                 mdb_warn("failed to read data at %p;", addr);
                 mdb_printf("maybe no stats? run \"zpool scrub\" first.");
                 return (DCMD_ERR);
         }
 
-        tzb = &stats.zab_type[DN_MAX_LEVELS][DMU_OT_NUMTYPES];
+        tzb = &stats.zab_type[DN_MAX_LEVELS][DMU_OT_TOTAL];
         if (tzb->zb_gangs != 0) {
                 mdb_printf("Ganged blocks: %llu\n",
                     (longlong_t)tzb->zb_gangs);
         }
 
@@ -2196,11 +2200,11 @@
         }
 
         mdb_printf("\nBlocks\tLSIZE\tPSIZE\tASIZE"
             "\t  avg\t comp\t%%Total\tType\n");
 
-        for (t = 0; t <= DMU_OT_NUMTYPES; t++) {
+        for (t = 0; t <= DMU_OT_TOTAL; t++) {
                 char csize[NICENUM_BUFLEN], lsize[NICENUM_BUFLEN];
                 char psize[NICENUM_BUFLEN], asize[NICENUM_BUFLEN];
                 char avg[NICENUM_BUFLEN];
                 char comp[NICENUM_BUFLEN], pct[NICENUM_BUFLEN];
                 char typename[64];
@@ -2207,10 +2211,12 @@
                 int l;
 
 
                 if (t == DMU_OT_DEFERRED)
                         strcpy(typename, "deferred free");
+                else if (t == DMU_OT_OTHER)
+                        strcpy(typename, "other");
                 else if (t == DMU_OT_TOTAL)
                         strcpy(typename, "Total");
                 else if (mdb_readstr(typename, sizeof (typename),
                     (uintptr_t)dmu_ot[t].ot_name) == -1) {
                         mdb_warn("failed to read type name");