comparison usr/src/uts/common/fs/zfs/dsl_dataset.c @ 13805:e3a9ae14a119

3006 VERIFY[S,U,P] and ASSERT[S,U,P] frequently check if first argument is zero Reviewed by Matt Ahrens <matthew.ahrens@delphix.com> Reviewed by George Wilson <george.wilson@delphix.com> Approved by Eric Schrock <eric.schrock@delphix.com>
author Madhav Suresh <madhav.suresh@delphix.com>
date Fri, 07 Sep 2012 07:19:55 -0700
parents ac6eff781c67
children d48547176ab4
comparison
equal deleted inserted replaced
13804:9f4f28db61d2 13805:e3a9ae14a119
1496 * ENOENT. However, at least we can check that we don't have 1496 * ENOENT. However, at least we can check that we don't have
1497 * too many entries in the next_clones_obj even after failing to 1497 * too many entries in the next_clones_obj even after failing to
1498 * remove this one. 1498 * remove this one.
1499 */ 1499 */
1500 if (err != ENOENT) { 1500 if (err != ENOENT) {
1501 VERIFY3U(err, ==, 0); 1501 VERIFY0(err);
1502 } 1502 }
1503 ASSERT3U(0, ==, zap_count(mos, ds->ds_phys->ds_next_clones_obj, 1503 ASSERT3U(0, ==, zap_count(mos, ds->ds_phys->ds_next_clones_obj,
1504 &count)); 1504 &count));
1505 ASSERT3U(count, <=, ds->ds_phys->ds_num_children - 2); 1505 ASSERT3U(count, <=, ds->ds_phys->ds_num_children - 2);
1506 } 1506 }
1583 poa.ds_prev = ds_prev; 1583 poa.ds_prev = ds_prev;
1584 poa.after_branch_point = after_branch_point; 1584 poa.after_branch_point = after_branch_point;
1585 poa.pio = zio_root(dp->dp_spa, NULL, NULL, ZIO_FLAG_MUSTSUCCEED); 1585 poa.pio = zio_root(dp->dp_spa, NULL, NULL, ZIO_FLAG_MUSTSUCCEED);
1586 VERIFY3U(0, ==, bpobj_iterate(&ds_next->ds_deadlist.dl_bpobj, 1586 VERIFY3U(0, ==, bpobj_iterate(&ds_next->ds_deadlist.dl_bpobj,
1587 process_old_cb, &poa, tx)); 1587 process_old_cb, &poa, tx));
1588 VERIFY3U(zio_wait(poa.pio), ==, 0); 1588 VERIFY0(zio_wait(poa.pio));
1589 ASSERT3U(poa.used, ==, ds->ds_phys->ds_unique_bytes); 1589 ASSERT3U(poa.used, ==, ds->ds_phys->ds_unique_bytes);
1590 1590
1591 /* change snapused */ 1591 /* change snapused */
1592 dsl_dir_diduse_space(ds->ds_dir, DD_USED_SNAP, 1592 dsl_dir_diduse_space(ds->ds_dir, DD_USED_SNAP,
1593 -poa.used, -poa.comp, -poa.uncomp, tx); 1593 -poa.used, -poa.comp, -poa.uncomp, tx);
1618 ka.ds = ds; 1618 ka.ds = ds;
1619 ka.tx = tx; 1619 ka.tx = tx;
1620 err = traverse_dataset(ds, 1620 err = traverse_dataset(ds,
1621 ds->ds_phys->ds_prev_snap_txg, TRAVERSE_POST, 1621 ds->ds_phys->ds_prev_snap_txg, TRAVERSE_POST,
1622 kill_blkptr, &ka); 1622 kill_blkptr, &ka);
1623 ASSERT3U(err, ==, 0); 1623 ASSERT0(err);
1624 ASSERT(!DS_UNIQUE_IS_ACCURATE(ds) || ds->ds_phys->ds_unique_bytes == 0); 1624 ASSERT(!DS_UNIQUE_IS_ACCURATE(ds) || ds->ds_phys->ds_unique_bytes == 0);
1625 1625
1626 return (err); 1626 return (err);
1627 } 1627 }
1628 1628
1674 (ZPROP_SRC_NONE | ZPROP_SRC_LOCAL | ZPROP_SRC_RECEIVED), 1674 (ZPROP_SRC_NONE | ZPROP_SRC_LOCAL | ZPROP_SRC_RECEIVED),
1675 &value); 1675 &value);
1676 psa.psa_effective_value = 0; /* predict default value */ 1676 psa.psa_effective_value = 0; /* predict default value */
1677 1677
1678 dsl_dataset_set_reservation_sync(ds, &psa, tx); 1678 dsl_dataset_set_reservation_sync(ds, &psa, tx);
1679 ASSERT3U(ds->ds_reserved, ==, 0); 1679 ASSERT0(ds->ds_reserved);
1680 } 1680 }
1681 1681
1682 ASSERT(RW_WRITE_HELD(&dp->dp_config_rwlock)); 1682 ASSERT(RW_WRITE_HELD(&dp->dp_config_rwlock));
1683 1683
1684 dsl_scan_ds_destroyed(ds, tx); 1684 dsl_scan_ds_destroyed(ds, tx);
1941 { 1941 {
1942 uint64_t val; 1942 uint64_t val;
1943 1943
1944 err = dsl_dataset_snap_lookup(ds_head, 1944 err = dsl_dataset_snap_lookup(ds_head,
1945 ds->ds_snapname, &val); 1945 ds->ds_snapname, &val);
1946 ASSERT3U(err, ==, 0); 1946 ASSERT0(err);
1947 ASSERT3U(val, ==, obj); 1947 ASSERT3U(val, ==, obj);
1948 } 1948 }
1949 #endif 1949 #endif
1950 err = dsl_dataset_snap_remove(ds_head, ds->ds_snapname, tx); 1950 err = dsl_dataset_snap_remove(ds_head, ds->ds_snapname, tx);
1951 ASSERT(err == 0); 1951 ASSERT(err == 0);
2435 VERIFY(0 == dsl_dataset_hold_obj(dd->dd_pool, 2435 VERIFY(0 == dsl_dataset_hold_obj(dd->dd_pool,
2436 dd->dd_phys->dd_head_dataset_obj, FTAG, &hds)); 2436 dd->dd_phys->dd_head_dataset_obj, FTAG, &hds));
2437 2437
2438 VERIFY(0 == dsl_dataset_get_snapname(ds)); 2438 VERIFY(0 == dsl_dataset_get_snapname(ds));
2439 err = dsl_dataset_snap_remove(hds, ds->ds_snapname, tx); 2439 err = dsl_dataset_snap_remove(hds, ds->ds_snapname, tx);
2440 ASSERT3U(err, ==, 0); 2440 ASSERT0(err);
2441 mutex_enter(&ds->ds_lock); 2441 mutex_enter(&ds->ds_lock);
2442 (void) strcpy(ds->ds_snapname, newsnapname); 2442 (void) strcpy(ds->ds_snapname, newsnapname);
2443 mutex_exit(&ds->ds_lock); 2443 mutex_exit(&ds->ds_lock);
2444 err = zap_add(mos, hds->ds_phys->ds_snapnames_zapobj, 2444 err = zap_add(mos, hds->ds_phys->ds_snapnames_zapobj,
2445 ds->ds_snapname, 8, 1, &ds->ds_object, tx); 2445 ds->ds_snapname, 8, 1, &ds->ds_object, tx);
2446 ASSERT3U(err, ==, 0); 2446 ASSERT0(err);
2447 2447
2448 spa_history_log_internal_ds(ds, "rename", tx, 2448 spa_history_log_internal_ds(ds, "rename", tx,
2449 "-> @%s", newsnapname); 2449 "-> @%s", newsnapname);
2450 dsl_dataset_rele(hds, FTAG); 2450 dsl_dataset_rele(hds, FTAG);
2451 } 2451 }
2895 dsl_dataset_rele(cnds, FTAG); 2895 dsl_dataset_rele(cnds, FTAG);
2896 } 2896 }
2897 zap_cursor_fini(&zc); 2897 zap_cursor_fini(&zc);
2898 } 2898 }
2899 2899
2900 ASSERT3U(dsl_prop_numcb(ds), ==, 0); 2900 ASSERT0(dsl_prop_numcb(ds));
2901 } 2901 }
2902 2902
2903 /* 2903 /*
2904 * Change space accounting. 2904 * Change space accounting.
2905 * Note, pa->*usedsnap and dd_used_breakdown[SNAP] will either 2905 * Note, pa->*usedsnap and dd_used_breakdown[SNAP] will either