Print this page
3006 VERIFY[S,U,P] and ASSERT[S,U,P] frequently check if first argument is zero
*** 70,80 ****
/*
* Bonus buffer contents are already initialized to 0, but for
* readability we make it explicit.
*/
! VERIFY3U(0, ==, dmu_bonus_hold(os, obj, FTAG, &db));
dmu_buf_will_dirty(db, tx);
bt = db->db_data;
bt->bt_begin = 0;
bt->bt_end = 0;
bt->bt_bytes = 0;
--- 70,80 ----
/*
* Bonus buffer contents are already initialized to 0, but for
* readability we make it explicit.
*/
! VERIFY0(dmu_bonus_hold(os, obj, FTAG, &db));
dmu_buf_will_dirty(db, tx);
bt = db->db_data;
bt->bt_begin = 0;
bt->bt_end = 0;
bt->bt_bytes = 0;
*** 89,104 ****
bptree_free(objset_t *os, uint64_t obj, dmu_tx_t *tx)
{
dmu_buf_t *db;
bptree_phys_t *bt;
! VERIFY3U(0, ==, dmu_bonus_hold(os, obj, FTAG, &db));
bt = db->db_data;
ASSERT3U(bt->bt_begin, ==, bt->bt_end);
! ASSERT3U(bt->bt_bytes, ==, 0);
! ASSERT3U(bt->bt_comp, ==, 0);
! ASSERT3U(bt->bt_uncomp, ==, 0);
dmu_buf_rele(db, FTAG);
return (dmu_object_free(os, obj, tx));
}
--- 89,104 ----
bptree_free(objset_t *os, uint64_t obj, dmu_tx_t *tx)
{
dmu_buf_t *db;
bptree_phys_t *bt;
! VERIFY0(dmu_bonus_hold(os, obj, FTAG, &db));
bt = db->db_data;
ASSERT3U(bt->bt_begin, ==, bt->bt_end);
! ASSERT0(bt->bt_bytes);
! ASSERT0(bt->bt_comp);
! ASSERT0(bt->bt_uncomp);
dmu_buf_rele(db, FTAG);
return (dmu_object_free(os, obj, tx));
}
*** 115,125 ****
* modified in syncing context. Furthermore, this is only modified
* by the sync thread, so no locking is necessary.
*/
ASSERT(dmu_tx_is_syncing(tx));
! VERIFY3U(0, ==, dmu_bonus_hold(os, obj, FTAG, &db));
bt = db->db_data;
bte.be_birth_txg = birth_txg;
bte.be_bp = *bp;
bzero(&bte.be_zb, sizeof (bte.be_zb));
--- 115,125 ----
* modified in syncing context. Furthermore, this is only modified
* by the sync thread, so no locking is necessary.
*/
ASSERT(dmu_tx_is_syncing(tx));
! VERIFY0(dmu_bonus_hold(os, obj, FTAG, &db));
bt = db->db_data;
bte.be_birth_txg = birth_txg;
bte.be_bp = *bp;
bzero(&bte.be_zb, sizeof (bte.be_zb));
*** 195,205 ****
ASSERT(err == 0 || err == ERESTART);
if (err != 0) {
/* save bookmark for future resume */
ASSERT3U(bte.be_zb.zb_objset, ==,
ZB_DESTROYED_OBJSET);
! ASSERT3U(bte.be_zb.zb_level, ==, 0);
dmu_write(os, obj, i * sizeof (bte),
sizeof (bte), &bte, tx);
break;
} else {
ba.ba_phys->bt_begin++;
--- 195,205 ----
ASSERT(err == 0 || err == ERESTART);
if (err != 0) {
/* save bookmark for future resume */
ASSERT3U(bte.be_zb.zb_objset, ==,
ZB_DESTROYED_OBJSET);
! ASSERT0(bte.be_zb.zb_level);
dmu_write(os, obj, i * sizeof (bte),
sizeof (bte), &bte, tx);
break;
} else {
ba.ba_phys->bt_begin++;
*** 211,223 ****
ASSERT(!free || err != 0 || ba.ba_phys->bt_begin == ba.ba_phys->bt_end);
/* if all blocks are free there should be no used space */
if (ba.ba_phys->bt_begin == ba.ba_phys->bt_end) {
! ASSERT3U(ba.ba_phys->bt_bytes, ==, 0);
! ASSERT3U(ba.ba_phys->bt_comp, ==, 0);
! ASSERT3U(ba.ba_phys->bt_uncomp, ==, 0);
}
dmu_buf_rele(db, FTAG);
return (err);
--- 211,223 ----
ASSERT(!free || err != 0 || ba.ba_phys->bt_begin == ba.ba_phys->bt_end);
/* if all blocks are free there should be no used space */
if (ba.ba_phys->bt_begin == ba.ba_phys->bt_end) {
! ASSERT0(ba.ba_phys->bt_bytes);
! ASSERT0(ba.ba_phys->bt_comp);
! ASSERT0(ba.ba_phys->bt_uncomp);
}
dmu_buf_rele(db, FTAG);
return (err);