Print this page
*** NO COMMENTS ***

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/fs/zfs/zio.c
          +++ new/usr/src/uts/common/fs/zfs/zio.c
↓ open down ↓ 2103 lines elided ↑ open up ↑
2104 2104          blkptr_t *bp = zio->io_bp;
2105 2105          ddt_t *ddt = ddt_select(spa, bp);
2106 2106          ddt_entry_t *dde;
2107 2107          ddt_phys_t *ddp;
2108 2108  
2109 2109          ASSERT(BP_GET_DEDUP(bp));
2110 2110          ASSERT(zio->io_child_type == ZIO_CHILD_LOGICAL);
2111 2111  
2112 2112          ddt_enter(ddt);
2113 2113          freedde = dde = ddt_lookup(ddt, bp, B_TRUE);
2114      -        ddp = ddt_phys_select(dde, bp);
2115      -        ddt_phys_decref(ddp);
     2114 +        if (dde) {
     2115 +                ddp = ddt_phys_select(dde, bp);
     2116 +                if (ddp) {
     2117 +                        ddt_phys_decref(ddp);
     2118 +                }
     2119 +        }
2116 2120          ddt_exit(ddt);
2117 2121  
2118 2122          return (ZIO_PIPELINE_CONTINUE);
2119 2123  }
2120 2124  
2121 2125  /*
2122 2126   * ==========================================================================
2123 2127   * Allocate and free blocks
2124 2128   * ==========================================================================
2125 2129   */
↓ open down ↓ 866 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX