Print this page
4047 panic from dbuf_free_range() from dmu_free_object() while doing zfs receive
Reviewed by: Adam Leventhal <ahl@delphix.com>
Reviewed by: George Wilson <george.wilson@delphix.com>

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/fs/zfs/sys/dnode.h
          +++ new/usr/src/uts/common/fs/zfs/sys/dnode.h
↓ open down ↓ 12 lines elided ↑ open up ↑
  13   13   * When distributing Covered Code, include this CDDL HEADER in each
  14   14   * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15   15   * If applicable, add the following below this CDDL HEADER, with the
  16   16   * fields enclosed by brackets "[]" replaced with your own identifying
  17   17   * information: Portions Copyright [yyyy] [name of copyright owner]
  18   18   *
  19   19   * CDDL HEADER END
  20   20   */
  21   21  /*
  22   22   * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
  23      - * Copyright (c) 2012 by Delphix. All rights reserved.
       23 + * Copyright (c) 2013 by Delphix. All rights reserved.
  24   24   */
  25   25  
  26   26  #ifndef _SYS_DNODE_H
  27   27  #define _SYS_DNODE_H
  28   28  
  29   29  #include <sys/zfs_context.h>
  30   30  #include <sys/avl.h>
  31   31  #include <sys/spa.h>
  32   32  #include <sys/txg.h>
  33   33  #include <sys/zio.h>
↓ open down ↓ 147 lines elided ↑ open up ↑
 181  181          uint8_t dn_next_nblkptr[TXG_SIZE];
 182  182          uint8_t dn_next_nlevels[TXG_SIZE];
 183  183          uint8_t dn_next_indblkshift[TXG_SIZE];
 184  184          uint8_t dn_next_bonustype[TXG_SIZE];
 185  185          uint8_t dn_rm_spillblk[TXG_SIZE];       /* for removing spill blk */
 186  186          uint16_t dn_next_bonuslen[TXG_SIZE];
 187  187          uint32_t dn_next_blksz[TXG_SIZE];       /* next block size in bytes */
 188  188  
 189  189          /* protected by dn_dbufs_mtx; declared here to fill 32-bit hole */
 190  190          uint32_t dn_dbufs_count;        /* count of dn_dbufs */
      191 +        /* There are no level-0 blocks of this blkid or higher in dn_dbufs */
      192 +        uint64_t dn_unlisted_l0_blkid;
 191  193  
 192  194          /* protected by os_lock: */
 193  195          list_node_t dn_dirty_link[TXG_SIZE];    /* next on dataset's dirty */
 194  196  
 195  197          /* protected by dn_mtx: */
 196  198          kmutex_t dn_mtx;
 197  199          list_t dn_dirty_records[TXG_SIZE];
 198  200          avl_tree_t dn_ranges[TXG_SIZE];
 199  201          uint64_t dn_allocated_txg;
 200  202          uint64_t dn_free_txg;
↓ open down ↓ 128 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX