Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 13 Dec 2012 17:39:08 +0000 (UTC)
From:      Steven Hartland <smh@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r244188 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs
Message-ID:  <201212131739.qBDHd8RR083616@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: smh
Date: Thu Dec 13 17:39:07 2012
New Revision: 244188
URL: http://svnweb.freebsd.org/changeset/base/244188

Log:
  Added vfs.zfs.vdev.trim_on_init sysctl which allows full vdev trim on
  initialisation to be enabled (1) / disabled (0) defaults to enabled.
  
  This is useful for devices which have a slow trim speed and are either
  new or have otherwise already been wiped e.g. secure erase.
  
  PR:     kern/173116
  Submitted by:   Steven Hartland
  Approved by:    pjd (mentor)

Modified:
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_label.c

Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_label.c
==============================================================================
--- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_label.c	Thu Dec 13 17:06:38 2012	(r244187)
+++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_label.c	Thu Dec 13 17:39:07 2012	(r244188)
@@ -148,6 +148,11 @@
 #include <sys/trim_map.h>
 #include <sys/fs/zfs.h>
 
+static boolean_t vdev_trim_on_init = B_TRUE;
+SYSCTL_DECL(_vfs_zfs_vdev);
+SYSCTL_INT(_vfs_zfs_vdev, OID_AUTO, trim_on_init, CTLFLAG_RW,
+    &vdev_trim_on_init, 0, "Enable/disable full vdev trim on initialisation");
+
 /*
  * Basic routines to read and write from a vdev label.
  * Used throughout the rest of this file.
@@ -724,7 +729,7 @@ vdev_label_init(vdev_t *vd, uint64_t crt
 	 * Don't TRIM if removing so that we don't interfere with zpool
 	 * disaster recovery.
 	 */
-	if (!zfs_notrim && (reason == VDEV_LABEL_CREATE ||
+	if (!zfs_notrim && vdev_trim_on_init && (reason == VDEV_LABEL_CREATE ||
 	    reason == VDEV_LABEL_SPARE || reason == VDEV_LABEL_L2CACHE))
 		zio_wait(zio_trim(NULL, spa, vd, 0, vd->vdev_psize));
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201212131739.qBDHd8RR083616>