Print this page
4185 New hash algorithm support

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/fs/zfs/sys/spa_impl.h
          +++ new/usr/src/uts/common/fs/zfs/sys/spa_impl.h
↓ open down ↓ 14 lines elided ↑ open up ↑
  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   23   * Copyright (c) 2013 by Delphix. All rights reserved.
  24   24   * Copyright 2011 Nexenta Systems, Inc.  All rights reserved.
       25 + * Copyright 2013 Saso Kiselkov. All rights reserved.
  25   26   */
  26   27  
  27   28  #ifndef _SYS_SPA_IMPL_H
  28   29  #define _SYS_SPA_IMPL_H
  29   30  
  30   31  #include <sys/spa.h>
  31   32  #include <sys/vdev.h>
  32   33  #include <sys/metaslab.h>
  33   34  #include <sys/dmu.h>
  34   35  #include <sys/dsl_pool.h>
↓ open down ↓ 115 lines elided ↑ open up ↑
 150  151          list_t          spa_config_dirty_list;  /* vdevs with dirty config */
 151  152          list_t          spa_state_dirty_list;   /* vdevs with dirty state */
 152  153          spa_aux_vdev_t  spa_spares;             /* hot spares */
 153  154          spa_aux_vdev_t  spa_l2cache;            /* L2ARC cache devices */
 154  155          nvlist_t        *spa_label_features;    /* Features for reading MOS */
 155  156          uint64_t        spa_config_object;      /* MOS object for pool config */
 156  157          uint64_t        spa_config_generation;  /* config generation number */
 157  158          uint64_t        spa_syncing_txg;        /* txg currently syncing */
 158  159          bpobj_t         spa_deferred_bpobj;     /* deferred-free bplist */
 159  160          bplist_t        spa_free_bplist[TXG_SIZE]; /* bplist of stuff to free */
      161 +        zio_cksum_salt_t spa_cksum_salt;        /* secret salt for cksum */
      162 +        uint64_t        spa_cksum_salt_obj;     /* persistent salt object */
      163 +        /* checksum context templates */
      164 +        kmutex_t        spa_cksum_tmpls_lock;
      165 +        void            *spa_cksum_tmpls[ZIO_CHECKSUM_FUNCTIONS];
 160  166          uberblock_t     spa_ubsync;             /* last synced uberblock */
 161  167          uberblock_t     spa_uberblock;          /* current uberblock */
 162  168          boolean_t       spa_extreme_rewind;     /* rewind past deferred frees */
 163  169          uint64_t        spa_last_io;            /* lbolt of last non-scan I/O */
 164  170          kmutex_t        spa_scrub_lock;         /* resilver/scrub lock */
 165  171          uint64_t        spa_scrub_inflight;     /* in-flight scrub I/Os */
 166  172          kcondvar_t      spa_scrub_io_cv;        /* scrub I/O completion */
 167  173          uint8_t         spa_scrub_active;       /* active or suspended? */
 168  174          uint8_t         spa_scrub_type;         /* type of scrub we're doing */
 169  175          uint8_t         spa_scrub_finished;     /* indicator to rotate logs */
↓ open down ↓ 103 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX