Print this page
3006 VERIFY[S,U,P] and ASSERT[S,U,P] frequently check if first argument is zero
        
*** 272,282 ****
          for (i = start; i <= end; i++, bp++) {
                  if (BP_IS_HOLE(bp))
                          continue;
                  rw_enter(&dn->dn_struct_rwlock, RW_READER);
                  err = dbuf_hold_impl(dn, db->db_level-1, i, TRUE, FTAG, &subdb);
!                 ASSERT3U(err, ==, 0);
                  rw_exit(&dn->dn_struct_rwlock);
  
                  if (free_children(subdb, blkid, nblks, trunc, tx) == ALL) {
                          ASSERT3P(subdb->db_blkptr, ==, bp);
                          blocks_freed += free_blocks(dn, bp, 1, tx);
--- 272,282 ----
          for (i = start; i <= end; i++, bp++) {
                  if (BP_IS_HOLE(bp))
                          continue;
                  rw_enter(&dn->dn_struct_rwlock, RW_READER);
                  err = dbuf_hold_impl(dn, db->db_level-1, i, TRUE, FTAG, &subdb);
!                 ASSERT0(err);
                  rw_exit(&dn->dn_struct_rwlock);
  
                  if (free_children(subdb, blkid, nblks, trunc, tx) == ALL) {
                          ASSERT3P(subdb->db_blkptr, ==, bp);
                          blocks_freed += free_blocks(dn, bp, 1, tx);
*** 292,302 ****
          for (i = start; i <= end; i++, bp++) {
                  if (i == start && blkid != 0)
                          continue;
                  else if (i == end && !trunc)
                          continue;
!                 ASSERT3U(bp->blk_birth, ==, 0);
          }
  #endif
          ASSERT(all || blocks_freed == 0 || db->db_last_dirty);
          return (all ? ALL : blocks_freed);
  }
--- 292,302 ----
          for (i = start; i <= end; i++, bp++) {
                  if (i == start && blkid != 0)
                          continue;
                  else if (i == end && !trunc)
                          continue;
!                 ASSERT0(bp->blk_birth);
          }
  #endif
          ASSERT(all || blocks_freed == 0 || db->db_last_dirty);
          return (all ? ALL : blocks_freed);
  }
*** 348,358 ****
          for (i = start; i <= end; i++, bp++) {
                  if (BP_IS_HOLE(bp))
                          continue;
                  rw_enter(&dn->dn_struct_rwlock, RW_READER);
                  err = dbuf_hold_impl(dn, dnlevel-1, i, TRUE, FTAG, &db);
!                 ASSERT3U(err, ==, 0);
                  rw_exit(&dn->dn_struct_rwlock);
  
                  if (free_children(db, blkid, nblks, trunc, tx) == ALL) {
                          ASSERT3P(db->db_blkptr, ==, bp);
                          (void) free_blocks(dn, bp, 1, tx);
--- 348,358 ----
          for (i = start; i <= end; i++, bp++) {
                  if (BP_IS_HOLE(bp))
                          continue;
                  rw_enter(&dn->dn_struct_rwlock, RW_READER);
                  err = dbuf_hold_impl(dn, dnlevel-1, i, TRUE, FTAG, &db);
!                 ASSERT0(err);
                  rw_exit(&dn->dn_struct_rwlock);
  
                  if (free_children(db, blkid, nblks, trunc, tx) == ALL) {
                          ASSERT3P(db->db_blkptr, ==, bp);
                          (void) free_blocks(dn, bp, 1, tx);
*** 469,479 ****
  
          /*
           * Our contents should have been freed in dnode_sync() by the
           * free range record inserted by the caller of dnode_free().
           */
!         ASSERT3U(DN_USED_BYTES(dn->dn_phys), ==, 0);
          ASSERT(BP_IS_HOLE(dn->dn_phys->dn_blkptr));
  
          dnode_undirty_dbufs(&dn->dn_dirty_records[txgoff]);
          dnode_evict_dbufs(dn);
          ASSERT3P(list_head(&dn->dn_dbufs), ==, NULL);
--- 469,479 ----
  
          /*
           * Our contents should have been freed in dnode_sync() by the
           * free range record inserted by the caller of dnode_free().
           */
!         ASSERT0(DN_USED_BYTES(dn->dn_phys));
          ASSERT(BP_IS_HOLE(dn->dn_phys->dn_blkptr));
  
          dnode_undirty_dbufs(&dn->dn_dirty_records[txgoff]);
          dnode_evict_dbufs(dn);
          ASSERT3P(list_head(&dn->dn_dbufs), ==, NULL);