Print this page
3956 ::vdev -r should work with pipelines
3957 ztest should update the cachefile before killing itself
3958 multiple scans can lead to partial resilvering
3959 ddt entries are not always resilvered
3960 dsl_scan can skip over dedup-ed blocks if physical birth != logical birth
3961 freed gang blocks are not resilvered and can cause pool to suspend
3962 ztest should print out zfs debug buffer before exiting
Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Reviewed by: Adam Leventhal <ahl@delphix.com>

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/fs/zfs/spa_config.c
          +++ new/usr/src/uts/common/fs/zfs/spa_config.c
↓ 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  /*
  23   23   * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
  24   24   * Copyright 2011 Nexenta Systems, Inc. All rights reserved.
  25      - * Copyright (c) 2012 by Delphix. All rights reserved.
       25 + * Copyright (c) 2013 by Delphix. All rights reserved.
  26   26   */
  27   27  
  28   28  #include <sys/spa.h>
  29   29  #include <sys/fm/fs/zfs.h>
  30   30  #include <sys/spa_impl.h>
  31   31  #include <sys/nvpair.h>
  32   32  #include <sys/uio.h>
  33   33  #include <sys/fs/zfs.h>
  34   34  #include <sys/vdev_impl.h>
  35   35  #include <sys/zfs_ioctl.h>
↓ open down ↓ 155 lines elided ↑ open up ↑
 191  191  
 192  192          (void) vn_remove(temp, UIO_SYSSPACE, RMFILE);
 193  193  
 194  194          kmem_free(buf, buflen);
 195  195          kmem_free(temp, MAXPATHLEN);
 196  196          return (err);
 197  197  }
 198  198  
 199  199  /*
 200  200   * Synchronize pool configuration to disk.  This must be called with the
 201      - * namespace lock held.
      201 + * namespace lock held. Synchronizing the pool cache is typically done after
      202 + * the configuration has been synced to the MOS. This exposes a window where
      203 + * the MOS config will have been updated but the cache file has not. If
      204 + * the system were to crash at that instant then the cached config may not
      205 + * contain the correct information to open the pool and an explicity import
      206 + * would be required.
 202  207   */
 203  208  void
 204  209  spa_config_sync(spa_t *target, boolean_t removing, boolean_t postsysevent)
 205  210  {
 206  211          spa_config_dirent_t *dp, *tdp;
 207  212          nvlist_t *nvl;
 208  213          boolean_t ccw_failure;
 209  214          int error;
 210  215  
 211  216          ASSERT(MUTEX_HELD(&spa_namespace_lock));
↓ open down ↓ 328 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX