Print this page
3006 VERIFY[S,U,P] and ASSERT[S,U,P] frequently check if first argument is zero

*** 135,170 **** for (i = 0; i < TXG_SIZE; i++) { ASSERT(!list_link_active(&dn->dn_dirty_link[i])); avl_destroy(&dn->dn_ranges[i]); list_destroy(&dn->dn_dirty_records[i]); ! ASSERT3U(dn->dn_next_nblkptr[i], ==, 0); ! ASSERT3U(dn->dn_next_nlevels[i], ==, 0); ! ASSERT3U(dn->dn_next_indblkshift[i], ==, 0); ! ASSERT3U(dn->dn_next_bonustype[i], ==, 0); ! ASSERT3U(dn->dn_rm_spillblk[i], ==, 0); ! ASSERT3U(dn->dn_next_bonuslen[i], ==, 0); ! ASSERT3U(dn->dn_next_blksz[i], ==, 0); } ! ASSERT3U(dn->dn_allocated_txg, ==, 0); ! ASSERT3U(dn->dn_free_txg, ==, 0); ! ASSERT3U(dn->dn_assigned_txg, ==, 0); ! ASSERT3U(dn->dn_dirtyctx, ==, 0); ASSERT3P(dn->dn_dirtyctx_firstset, ==, NULL); ASSERT3P(dn->dn_bonus, ==, NULL); ASSERT(!dn->dn_have_spill); ASSERT3P(dn->dn_zio, ==, NULL); ! ASSERT3U(dn->dn_oldused, ==, 0); ! ASSERT3U(dn->dn_oldflags, ==, 0); ! ASSERT3U(dn->dn_olduid, ==, 0); ! ASSERT3U(dn->dn_oldgid, ==, 0); ! ASSERT3U(dn->dn_newuid, ==, 0); ! ASSERT3U(dn->dn_newgid, ==, 0); ! ASSERT3U(dn->dn_id_flags, ==, 0); ! ASSERT3U(dn->dn_dbufs_count, ==, 0); list_destroy(&dn->dn_dbufs); } void dnode_init(void) --- 135,170 ---- for (i = 0; i < TXG_SIZE; i++) { ASSERT(!list_link_active(&dn->dn_dirty_link[i])); avl_destroy(&dn->dn_ranges[i]); list_destroy(&dn->dn_dirty_records[i]); ! ASSERT0(dn->dn_next_nblkptr[i]); ! ASSERT0(dn->dn_next_nlevels[i]); ! ASSERT0(dn->dn_next_indblkshift[i]); ! ASSERT0(dn->dn_next_bonustype[i]); ! ASSERT0(dn->dn_rm_spillblk[i]); ! ASSERT0(dn->dn_next_bonuslen[i]); ! ASSERT0(dn->dn_next_blksz[i]); } ! ASSERT0(dn->dn_allocated_txg); ! ASSERT0(dn->dn_free_txg); ! ASSERT0(dn->dn_assigned_txg); ! ASSERT0(dn->dn_dirtyctx); ASSERT3P(dn->dn_dirtyctx_firstset, ==, NULL); ASSERT3P(dn->dn_bonus, ==, NULL); ASSERT(!dn->dn_have_spill); ASSERT3P(dn->dn_zio, ==, NULL); ! ASSERT0(dn->dn_oldused); ! ASSERT0(dn->dn_oldflags); ! ASSERT0(dn->dn_olduid); ! ASSERT0(dn->dn_oldgid); ! ASSERT0(dn->dn_newuid); ! ASSERT0(dn->dn_newgid); ! ASSERT0(dn->dn_id_flags); ! ASSERT0(dn->dn_dbufs_count); list_destroy(&dn->dn_dbufs); } void dnode_init(void)
*** 359,369 **** } static void dnode_setdblksz(dnode_t *dn, int size) { ! ASSERT3U(P2PHASE(size, SPA_MINBLOCKSIZE), ==, 0); ASSERT3U(size, <=, SPA_MAXBLOCKSIZE); ASSERT3U(size, >=, SPA_MINBLOCKSIZE); ASSERT3U(size >> SPA_MINBLOCKSHIFT, <, 1<<(sizeof (dn->dn_phys->dn_datablkszsec) * 8)); dn->dn_datablksz = size; --- 359,369 ---- } static void dnode_setdblksz(dnode_t *dn, int size) { ! ASSERT0(P2PHASE(size, SPA_MINBLOCKSIZE)); ASSERT3U(size, <=, SPA_MAXBLOCKSIZE); ASSERT3U(size, >=, SPA_MINBLOCKSIZE); ASSERT3U(size >> SPA_MINBLOCKSHIFT, <, 1<<(sizeof (dn->dn_phys->dn_datablkszsec) * 8)); dn->dn_datablksz = size;
*** 504,531 **** (bonustype == DMU_OT_SA && bonuslen == 0) || (bonustype != DMU_OT_NONE && bonuslen != 0)); ASSERT(DMU_OT_IS_VALID(bonustype)); ASSERT3U(bonuslen, <=, DN_MAX_BONUSLEN); ASSERT(dn->dn_type == DMU_OT_NONE); ! ASSERT3U(dn->dn_maxblkid, ==, 0); ! ASSERT3U(dn->dn_allocated_txg, ==, 0); ! ASSERT3U(dn->dn_assigned_txg, ==, 0); ASSERT(refcount_is_zero(&dn->dn_tx_holds)); ASSERT3U(refcount_count(&dn->dn_holds), <=, 1); ASSERT3P(list_head(&dn->dn_dbufs), ==, NULL); for (i = 0; i < TXG_SIZE; i++) { ! ASSERT3U(dn->dn_next_nblkptr[i], ==, 0); ! ASSERT3U(dn->dn_next_nlevels[i], ==, 0); ! ASSERT3U(dn->dn_next_indblkshift[i], ==, 0); ! ASSERT3U(dn->dn_next_bonuslen[i], ==, 0); ! ASSERT3U(dn->dn_next_bonustype[i], ==, 0); ! ASSERT3U(dn->dn_rm_spillblk[i], ==, 0); ! ASSERT3U(dn->dn_next_blksz[i], ==, 0); ASSERT(!list_link_active(&dn->dn_dirty_link[i])); ASSERT3P(list_head(&dn->dn_dirty_records[i]), ==, NULL); ! ASSERT3U(avl_numnodes(&dn->dn_ranges[i]), ==, 0); } dn->dn_type = ot; dnode_setdblksz(dn, blocksize); dn->dn_indblkshift = ibs; --- 504,531 ---- (bonustype == DMU_OT_SA && bonuslen == 0) || (bonustype != DMU_OT_NONE && bonuslen != 0)); ASSERT(DMU_OT_IS_VALID(bonustype)); ASSERT3U(bonuslen, <=, DN_MAX_BONUSLEN); ASSERT(dn->dn_type == DMU_OT_NONE); ! ASSERT0(dn->dn_maxblkid); ! ASSERT0(dn->dn_allocated_txg); ! ASSERT0(dn->dn_assigned_txg); ASSERT(refcount_is_zero(&dn->dn_tx_holds)); ASSERT3U(refcount_count(&dn->dn_holds), <=, 1); ASSERT3P(list_head(&dn->dn_dbufs), ==, NULL); for (i = 0; i < TXG_SIZE; i++) { ! ASSERT0(dn->dn_next_nblkptr[i]); ! ASSERT0(dn->dn_next_nlevels[i]); ! ASSERT0(dn->dn_next_indblkshift[i]); ! ASSERT0(dn->dn_next_bonuslen[i]); ! ASSERT0(dn->dn_next_bonustype[i]); ! ASSERT0(dn->dn_rm_spillblk[i]); ! ASSERT0(dn->dn_next_blksz[i]); ASSERT(!list_link_active(&dn->dn_dirty_link[i])); ASSERT3P(list_head(&dn->dn_dirty_records[i]), ==, NULL); ! ASSERT0(avl_numnodes(&dn->dn_ranges[i])); } dn->dn_type = ot; dnode_setdblksz(dn, blocksize); dn->dn_indblkshift = ibs;
*** 563,573 **** { int nblkptr; ASSERT3U(blocksize, >=, SPA_MINBLOCKSIZE); ASSERT3U(blocksize, <=, SPA_MAXBLOCKSIZE); ! ASSERT3U(blocksize % SPA_MINBLOCKSIZE, ==, 0); ASSERT(dn->dn_object != DMU_META_DNODE_OBJECT || dmu_tx_private_ok(tx)); ASSERT(tx->tx_txg != 0); ASSERT((bonustype == DMU_OT_NONE && bonuslen == 0) || (bonustype != DMU_OT_NONE && bonuslen != 0) || (bonustype == DMU_OT_SA && bonuslen == 0)); --- 563,573 ---- { int nblkptr; ASSERT3U(blocksize, >=, SPA_MINBLOCKSIZE); ASSERT3U(blocksize, <=, SPA_MAXBLOCKSIZE); ! ASSERT0(blocksize % SPA_MINBLOCKSIZE); ASSERT(dn->dn_object != DMU_META_DNODE_OBJECT || dmu_tx_private_ok(tx)); ASSERT(tx->tx_txg != 0); ASSERT((bonustype == DMU_OT_NONE && bonuslen == 0) || (bonustype != DMU_OT_NONE && bonuslen != 0) || (bonustype == DMU_OT_SA && bonuslen == 0));
*** 1233,1245 **** return; } ASSERT(!refcount_is_zero(&dn->dn_holds) || list_head(&dn->dn_dbufs)); ASSERT(dn->dn_datablksz != 0); ! ASSERT3U(dn->dn_next_bonuslen[txg&TXG_MASK], ==, 0); ! ASSERT3U(dn->dn_next_blksz[txg&TXG_MASK], ==, 0); ! ASSERT3U(dn->dn_next_bonustype[txg&TXG_MASK], ==, 0); dprintf_ds(os->os_dsl_dataset, "obj=%llu txg=%llu\n", dn->dn_object, txg); if (dn->dn_free_txg > 0 && dn->dn_free_txg <= txg) { --- 1233,1245 ---- return; } ASSERT(!refcount_is_zero(&dn->dn_holds) || list_head(&dn->dn_dbufs)); ASSERT(dn->dn_datablksz != 0); ! ASSERT0(dn->dn_next_bonuslen[txg&TXG_MASK]); ! ASSERT0(dn->dn_next_blksz[txg&TXG_MASK]); ! ASSERT0(dn->dn_next_bonustype[txg&TXG_MASK]); dprintf_ds(os->os_dsl_dataset, "obj=%llu txg=%llu\n", dn->dn_object, txg); if (dn->dn_free_txg > 0 && dn->dn_free_txg <= txg) {
*** 1585,1595 **** if (trunc) tail = 0; else tail = P2PHASE(len, blksz); ! ASSERT3U(P2PHASE(off, blksz), ==, 0); /* zero out any partial block data at the end of the range */ if (tail) { if (len < tail) tail = len; if (dbuf_hold_impl(dn, 0, dbuf_whichblock(dn, off+len), --- 1585,1595 ---- if (trunc) tail = 0; else tail = P2PHASE(len, blksz); ! ASSERT0(P2PHASE(off, blksz)); /* zero out any partial block data at the end of the range */ if (tail) { if (len < tail) tail = len; if (dbuf_hold_impl(dn, 0, dbuf_whichblock(dn, off+len),
*** 1767,1777 **** ASSERT3U(space, >=, -delta); /* no underflow */ } space += delta; if (spa_version(dn->dn_objset->os_spa) < SPA_VERSION_DNODE_BYTES) { ASSERT((dn->dn_phys->dn_flags & DNODE_FLAG_USED_BYTES) == 0); ! ASSERT3U(P2PHASE(space, 1<<DEV_BSHIFT), ==, 0); dn->dn_phys->dn_used = space >> DEV_BSHIFT; } else { dn->dn_phys->dn_used = space; dn->dn_phys->dn_flags |= DNODE_FLAG_USED_BYTES; } --- 1767,1777 ---- ASSERT3U(space, >=, -delta); /* no underflow */ } space += delta; if (spa_version(dn->dn_objset->os_spa) < SPA_VERSION_DNODE_BYTES) { ASSERT((dn->dn_phys->dn_flags & DNODE_FLAG_USED_BYTES) == 0); ! ASSERT0(P2PHASE(space, 1<<DEV_BSHIFT)); dn->dn_phys->dn_used = space >> DEV_BSHIFT; } else { dn->dn_phys->dn_used = space; dn->dn_phys->dn_flags |= DNODE_FLAG_USED_BYTES; }