Print this page
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/cmd/zpool/zpool_util.c
          +++ new/usr/src/cmd/zpool/zpool_util.c
↓ 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 2009 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  #include <errno.h>
  27   28  #include <libgen.h>
  28   29  #include <libintl.h>
  29   30  #include <stdio.h>
  30   31  #include <stdlib.h>
  31   32  #include <strings.h>
  32   33  
  33   34  #include "zpool_util.h"
↓ open down ↓ 42 lines elided ↑ open up ↑
  76   77  
  77   78          for (c = 0; c < children; c++) {
  78   79                  uint64_t is_log = B_FALSE;
  79   80  
  80   81                  (void) nvlist_lookup_uint64(child[c], ZPOOL_CONFIG_IS_LOG,
  81   82                      &is_log);
  82   83                  if (is_log)
  83   84                          nlogs++;
  84   85          }
  85   86          return (nlogs);
       87 +}
       88 +
       89 +/*
       90 + * Return the number of special vdevs in supplied nvlist
       91 + */
       92 +uint_t
       93 +num_special(nvlist_t *nv)
       94 +{
       95 +        uint_t nspecial = 0;
       96 +        uint_t c, children;
       97 +        nvlist_t **child;
       98 +
       99 +        if (nvlist_lookup_nvlist_array(nv, ZPOOL_CONFIG_CHILDREN,
      100 +            &child, &children) != 0)
      101 +                return (0);
      102 +
      103 +        for (c = 0; c < children; c++) {
      104 +                uint64_t is_special = B_FALSE;
      105 +
      106 +                (void) nvlist_lookup_uint64(child[c], ZPOOL_CONFIG_IS_SPECIAL,
      107 +                    &is_special);
      108 +                if (is_special)
      109 +                        nspecial++;
      110 +        }
      111 +        return (nspecial);
  86  112  }
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX