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>

@@ -1326,11 +1326,12 @@
          */
         if (vd->vdev_ops->vdev_op_leaf && vdev_readable(vd)) {
                 uint64_t aux_guid = 0;
                 nvlist_t *nvl;
 
-                if ((label = vdev_label_read_config(vd)) == NULL) {
+                if ((label = vdev_label_read_config(vd, VDEV_BEST_LABEL)) ==
+                    NULL) {
                         vdev_set_state(vd, B_TRUE, VDEV_STATE_CANT_OPEN,
                             VDEV_AUX_BAD_LABEL);
                         return (0);
                 }
 

@@ -1967,18 +1968,18 @@
         uint64_t state;
 
         if (!vdev_readable(vd))
                 return (0);
 
-        if ((label = vdev_label_read_config(vd)) == NULL) {
+        if ((label = vdev_label_read_config(vd, VDEV_BEST_LABEL)) == NULL) {
                 vdev_set_state(vd, B_TRUE, VDEV_STATE_CANT_OPEN,
                     VDEV_AUX_CORRUPT_DATA);
                 return (-1);
         }
 
         if (nvlist_lookup_uint64(label, ZPOOL_CONFIG_VERSION, &version) != 0 ||
-            version > SPA_VERSION ||
+            !SPA_VERSION_IS_SUPPORTED(version) ||
             nvlist_lookup_uint64(label, ZPOOL_CONFIG_GUID, &guid) != 0 ||
             guid != vd->vdev_guid ||
             nvlist_lookup_uint64(label, ZPOOL_CONFIG_POOL_STATE, &state) != 0) {
                 vdev_set_state(vd, B_TRUE, VDEV_STATE_CANT_OPEN,
                     VDEV_AUX_CORRUPT_DATA);