Print this page
NEX-5795 Rename 'wrc' as 'wbc' in the source and in the tech docs
Reviewed by: Alex Aizman <alex.aizman@nexenta.com>
Reviewed by: Sanjay Nadkarni <sanjay.nadkarni@nexenta.com>
Reviewed by: Alek Pinchuk <alek.pinchuk@nexenta.com>
re #12585 rb4049 ZFS++ work port - refactoring to improve separation of open/closed code, bug fixes, performance improvements - open code
Bug 11205: add missing libzfs_closed_stubs.c to fix opensource-only build.
ZFS plus work: special vdevs, cos, cos/vdev properties

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/fs/zfs/sys/dmu_tx.h
          +++ new/usr/src/uts/common/fs/zfs/sys/dmu_tx.h
↓ open down ↓ 13 lines elided ↑ open up ↑
  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 2010 Sun Microsystems, Inc.  All rights reserved.
  23   23   * Use is subject to license terms.
       24 + * Copyright 2013 Nexenta Systems, Inc. All rights reserved.
  24   25   */
  25   26  /*
  26   27   * Copyright (c) 2012, 2016 by Delphix. All rights reserved.
  27   28   */
  28   29  
  29   30  #ifndef _SYS_DMU_TX_H
  30   31  #define _SYS_DMU_TX_H
  31   32  
  32   33  #include <sys/inttypes.h>
  33   34  #include <sys/dmu.h>
↓ open down ↓ 26 lines elided ↑ open up ↑
  60   61          txg_handle_t tx_txgh;
  61   62          void *tx_tempreserve_cookie;
  62   63          struct dmu_tx_hold *tx_needassign_txh;
  63   64  
  64   65          /* list of dmu_tx_callback_t on this dmu_tx */
  65   66          list_t tx_callbacks;
  66   67  
  67   68          /* placeholder for syncing context, doesn't need specific holds */
  68   69          boolean_t tx_anyobj;
  69   70  
       71 +        /* has this transaction already been delayed? */
       72 +        boolean_t tx_waited;
       73 +
  70   74          /* transaction is marked as being a "net free" of space */
  71   75          boolean_t tx_netfree;
  72   76  
  73   77          /* time this transaction was created */
  74   78          hrtime_t tx_start;
  75   79  
  76   80          /* need to wait for sufficient dirty space */
  77   81          boolean_t tx_wait_dirty;
  78   82  
  79      -        /* has this transaction already been delayed? */
  80      -        boolean_t tx_dirty_delayed;
  81      -
  82   83          int tx_err;
  83   84  };
  84   85  
  85   86  enum dmu_tx_hold_type {
  86   87          THT_NEWOBJECT,
  87   88          THT_WRITE,
  88   89          THT_BONUS,
  89   90          THT_FREE,
  90   91          THT_ZAP,
  91   92          THT_SPACE,
↓ open down ↓ 15 lines elided ↑ open up ↑
 107  108  typedef struct dmu_tx_callback {
 108  109          list_node_t             dcb_node;    /* linked to tx_callbacks list */
 109  110          dmu_tx_callback_func_t  *dcb_func;   /* caller function pointer */
 110  111          void                    *dcb_data;   /* caller private data */
 111  112  } dmu_tx_callback_t;
 112  113  
 113  114  /*
 114  115   * These routines are defined in dmu.h, and are called by the user.
 115  116   */
 116  117  dmu_tx_t *dmu_tx_create(objset_t *dd);
 117      -int dmu_tx_assign(dmu_tx_t *tx, uint64_t txg_how);
      118 +int dmu_tx_assign(dmu_tx_t *tx, txg_how_t txg_how);
 118  119  void dmu_tx_commit(dmu_tx_t *tx);
 119  120  void dmu_tx_abort(dmu_tx_t *tx);
 120  121  uint64_t dmu_tx_get_txg(dmu_tx_t *tx);
 121  122  struct dsl_pool *dmu_tx_pool(dmu_tx_t *tx);
 122  123  void dmu_tx_wait(dmu_tx_t *tx);
 123  124  
 124  125  void dmu_tx_callback_register(dmu_tx_t *tx, dmu_tx_callback_func_t *dcb_func,
 125  126      void *dcb_data);
 126  127  void dmu_tx_do_callbacks(list_t *cb_list, int error);
 127  128  
↓ open down ↓ 26 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX