Print this page
3006 VERIFY[S,U,P] and ASSERT[S,U,P] frequently check if first argument is zero
        
*** 2954,2964 ****
                      spa->spa_feat_for_read_obj);
                      zap_cursor_retrieve(&zc, &za) == 0;
                      zap_cursor_advance(&zc)) {
                          ASSERT(za.za_integer_length == sizeof (uint64_t) &&
                              za.za_num_integers == 1);
!                         VERIFY3U(0, ==, nvlist_add_uint64(features, za.za_name,
                              za.za_first_integer));
                  }
                  zap_cursor_fini(&zc);
          }
  
--- 2954,2964 ----
                      spa->spa_feat_for_read_obj);
                      zap_cursor_retrieve(&zc, &za) == 0;
                      zap_cursor_advance(&zc)) {
                          ASSERT(za.za_integer_length == sizeof (uint64_t) &&
                              za.za_num_integers == 1);
!                         VERIFY0(nvlist_add_uint64(features, za.za_name,
                              za.za_first_integer));
                  }
                  zap_cursor_fini(&zc);
          }
  
*** 2967,2977 ****
                      spa->spa_feat_for_write_obj);
                      zap_cursor_retrieve(&zc, &za) == 0;
                      zap_cursor_advance(&zc)) {
                          ASSERT(za.za_integer_length == sizeof (uint64_t) &&
                              za.za_num_integers == 1);
!                         VERIFY3U(0, ==, nvlist_add_uint64(features, za.za_name,
                              za.za_first_integer));
                  }
                  zap_cursor_fini(&zc);
          }
  
--- 2967,2977 ----
                      spa->spa_feat_for_write_obj);
                      zap_cursor_retrieve(&zc, &za) == 0;
                      zap_cursor_advance(&zc)) {
                          ASSERT(za.za_integer_length == sizeof (uint64_t) &&
                              za.za_num_integers == 1);
!                         VERIFY0(nvlist_add_uint64(features, za.za_name,
                              za.za_first_integer));
                  }
                  zap_cursor_fini(&zc);
          }
  
*** 3408,3418 ****
          if (zap_add(spa->spa_meta_objset,
              DMU_POOL_DIRECTORY_OBJECT, DMU_POOL_SYNC_BPOBJ,
              sizeof (uint64_t), 1, &obj, tx) != 0) {
                  cmn_err(CE_PANIC, "failed to add bpobj");
          }
!         VERIFY3U(0, ==, bpobj_open(&spa->spa_deferred_bpobj,
              spa->spa_meta_objset, obj));
  
          /*
           * Create the pool's history object.
           */
--- 3408,3418 ----
          if (zap_add(spa->spa_meta_objset,
              DMU_POOL_DIRECTORY_OBJECT, DMU_POOL_SYNC_BPOBJ,
              sizeof (uint64_t), 1, &obj, tx) != 0) {
                  cmn_err(CE_PANIC, "failed to add bpobj");
          }
!         VERIFY0(bpobj_open(&spa->spa_deferred_bpobj,
              spa->spa_meta_objset, obj));
  
          /*
           * Create the pool's history object.
           */
*** 4983,4993 ****
  
          /*
           * The evacuation succeeded.  Remove any remaining MOS metadata
           * associated with this vdev, and wait for these changes to sync.
           */
!         ASSERT3U(vd->vdev_stat.vs_alloc, ==, 0);
          txg = spa_vdev_config_enter(spa);
          vd->vdev_removing = B_TRUE;
          vdev_dirty(vd, 0, NULL, txg);
          vdev_config_dirty(vd);
          spa_vdev_config_exit(spa, NULL, txg, 0, FTAG);
--- 4983,4993 ----
  
          /*
           * The evacuation succeeded.  Remove any remaining MOS metadata
           * associated with this vdev, and wait for these changes to sync.
           */
!         ASSERT0(vd->vdev_stat.vs_alloc);
          txg = spa_vdev_config_enter(spa);
          vd->vdev_removing = B_TRUE;
          vdev_dirty(vd, 0, NULL, txg);
          vdev_config_dirty(vd);
          spa_vdev_config_exit(spa, NULL, txg, 0, FTAG);
*** 5730,5740 ****
                           * We checked this earlier in spa_prop_validate().
                           */
                          ASSERT(zpool_prop_feature(nvpair_name(elem)));
  
                          fname = strchr(nvpair_name(elem), '@') + 1;
!                         VERIFY3U(0, ==, zfeature_lookup_name(fname, &feature));
  
                          spa_feature_enable(spa, feature, tx);
                          spa_history_log_internal(spa, "set", tx,
                              "%s=enabled", nvpair_name(elem));
                          break;
--- 5730,5740 ----
                           * We checked this earlier in spa_prop_validate().
                           */
                          ASSERT(zpool_prop_feature(nvpair_name(elem)));
  
                          fname = strchr(nvpair_name(elem), '@') + 1;
!                         VERIFY0(zfeature_lookup_name(fname, &feature));
  
                          spa_feature_enable(spa, feature, tx);
                          spa_history_log_internal(spa, "set", tx,
                              "%s=enabled", nvpair_name(elem));
                          break;
*** 5975,5985 ****
              ((dsl_scan_active(dp->dp_scan) ||
              txg_sync_waiting(dp)) && !spa_shutting_down(spa))) {
                  zio_t *zio = zio_root(spa, NULL, NULL, 0);
                  VERIFY3U(bpobj_iterate(defer_bpo,
                      spa_free_sync_cb, zio, tx), ==, 0);
!                 VERIFY3U(zio_wait(zio), ==, 0);
          }
  
          /*
           * Iterate to convergence.
           */
--- 5975,5985 ----
              ((dsl_scan_active(dp->dp_scan) ||
              txg_sync_waiting(dp)) && !spa_shutting_down(spa))) {
                  zio_t *zio = zio_root(spa, NULL, NULL, 0);
                  VERIFY3U(bpobj_iterate(defer_bpo,
                      spa_free_sync_cb, zio, tx), ==, 0);
!                 VERIFY0(zio_wait(zio));
          }
  
          /*
           * Iterate to convergence.
           */