Print this page
2619 asynchronous destruction of ZFS file systems
2747 SPA versioning with zfs feature flags
Reviewed by: Matt Ahrens <mahrens@delphix.com>
Reviewed by: George Wilson <gwilson@delphix.com>
Reviewed by: Richard Lowe <richlowe@richlowe.net>
Reviewed by: Dan Kruchinin <dan.kruchinin@gmail.com>
Approved by: Dan McDonald <danmcd@nexenta.com>

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/fs/zfs/sys/vdev.h
          +++ new/usr/src/uts/common/fs/zfs/sys/vdev.h
↓ open down ↓ 10 lines elided ↑ open up ↑
  11   11   * and limitations under the License.
  12   12   *
  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   23   * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
  23   24   * Copyright (c) 2012 by Delphix. All rights reserved.
  24   25   */
  25   26  
  26   27  #ifndef _SYS_VDEV_H
  27   28  #define _SYS_VDEV_H
  28   29  
  29   30  #include <sys/spa.h>
  30   31  #include <sys/zio.h>
↓ open down ↓ 103 lines elided ↑ open up ↑
 134  135  extern void vdev_top_config_generate(spa_t *spa, nvlist_t *config);
 135  136  extern nvlist_t *vdev_config_generate(spa_t *spa, vdev_t *vd,
 136  137      boolean_t getstats, vdev_config_flag_t flags);
 137  138  
 138  139  /*
 139  140   * Label routines
 140  141   */
 141  142  struct uberblock;
 142  143  extern uint64_t vdev_label_offset(uint64_t psize, int l, uint64_t offset);
 143  144  extern int vdev_label_number(uint64_t psise, uint64_t offset);
 144      -extern nvlist_t *vdev_label_read_config(vdev_t *vd);
 145      -extern void vdev_uberblock_load(zio_t *zio, vdev_t *vd, struct uberblock *ub);
      145 +extern nvlist_t *vdev_label_read_config(vdev_t *vd, int label);
      146 +extern void vdev_uberblock_load(vdev_t *, struct uberblock *, nvlist_t **);
 146  147  
 147  148  typedef enum {
 148  149          VDEV_LABEL_CREATE,      /* create/add a new device */
 149  150          VDEV_LABEL_REPLACE,     /* replace an existing device */
 150  151          VDEV_LABEL_SPARE,       /* add a new hot spare */
 151  152          VDEV_LABEL_REMOVE,      /* remove an existing device */
 152  153          VDEV_LABEL_L2CACHE,     /* add an L2ARC cache device */
 153  154          VDEV_LABEL_SPLIT        /* generating new label for split-off dev */
 154  155  } vdev_labeltype_t;
 155  156  
 156  157  extern int vdev_label_init(vdev_t *vd, uint64_t txg, vdev_labeltype_t reason);
 157  158  
 158  159  #ifdef  __cplusplus
 159  160  }
 160  161  #endif
 161  162  
 162  163  #endif  /* _SYS_VDEV_H */
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX