svn commit: r246394 - vendor-sys/illumos/dist/uts/common/fs/zfs

Martin Matuska mm at FreeBSD.org
Wed Feb 6 08:29:01 UTC 2013


Author: mm
Date: Wed Feb  6 08:29:00 2013
New Revision: 246394
URL: http://svnweb.freebsd.org/changeset/base/246394

Log:
  Update vendor-sys/illumos/dist to illumos-gate version 13945:7a9c1d41dfbe
  
  Illumos ZFS issues:
    3507 Tunable to allow block allocation even on degraded vdevs

Modified:
  vendor-sys/illumos/dist/uts/common/fs/zfs/metaslab.c

Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/metaslab.c
==============================================================================
--- vendor-sys/illumos/dist/uts/common/fs/zfs/metaslab.c	Wed Feb  6 08:26:55 2013	(r246393)
+++ vendor-sys/illumos/dist/uts/common/fs/zfs/metaslab.c	Wed Feb  6 08:29:00 2013	(r246394)
@@ -21,6 +21,7 @@
 /*
  * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012 by Delphix. All rights reserved.
+ * Copyright (c) 2013 by Saso Kiselkov. All rights reserved.
  */
 
 #include <sys/zfs_context.h>
@@ -91,6 +92,11 @@ int metaslab_prefetch_limit = SPA_DVAS_P
 int metaslab_smo_bonus_pct = 150;
 
 /*
+ * Should we be willing to write data to degraded vdevs?
+ */
+boolean_t zfs_write_to_degraded = B_FALSE;
+
+/*
  * ==========================================================================
  * Metaslab classes
  * ==========================================================================
@@ -1377,10 +1383,13 @@ top:
 
 		/*
 		 * Avoid writing single-copy data to a failing vdev
+		 * unless the user instructs us that it is okay.
 		 */
 		if ((vd->vdev_stat.vs_write_errors > 0 ||
 		    vd->vdev_state < VDEV_STATE_HEALTHY) &&
-		    d == 0 && dshift == 3) {
+		    d == 0 && dshift == 3 &&
+		    !(zfs_write_to_degraded && vd->vdev_state ==
+		    VDEV_STATE_DEGRADED)) {
 			all_zero = B_FALSE;
 			goto next;
 		}


More information about the svn-src-all mailing list