[Midnightbsd-cvs] src [7064] U stable/0.6/sys/modules/zfs/Makefile: MFC: Trim support for ZFS

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Sun Jun 21 14:56:23 EDT 2015


Revision: 7064
          http://svnweb.midnightbsd.org/src/?rev=7064
Author:   laffer1
Date:     2015-06-21 14:56:23 -0400 (Sun, 21 Jun 2015)
Log Message:
-----------
MFC: Trim support for ZFS

Modified Paths:
--------------
    stable/0.6/UPDATING
    stable/0.6/cddl/lib/libzpool/Makefile
    stable/0.6/sys/cddl/compat/opensolaris/kern/opensolaris_kstat.c
    stable/0.6/sys/cddl/compat/opensolaris/sys/dkio.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/kstat.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/time.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_scan.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa_impl.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_impl.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio_impl.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_label.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_mirror.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_raidz.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c
    stable/0.6/sys/conf/newvers.sh
    stable/0.6/sys/modules/zfs/Makefile

Added Paths:
-----------
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/trim_map.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/trim_map.c

Property Changed:
----------------
    stable/0.6/cddl/lib/libzpool/Makefile
    stable/0.6/sys/cddl/compat/opensolaris/kern/opensolaris_kstat.c
    stable/0.6/sys/cddl/compat/opensolaris/sys/acl.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/atomic.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/bitmap.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/byteorder.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/cmn_err.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/cpupart.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/cpuvar.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/cpuvar_defs.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/cred.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/cyclic.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/cyclic_impl.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/debug.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/dirent.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/dkio.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/dnlc.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/elf.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/feature_tests.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/file.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/kcondvar.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/kidmap.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/kmem.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/kobj.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/kstat.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/lock.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/misc.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/mman.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/mntent.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/mnttab.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/modctl.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/mount.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/mutex.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/objfs.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/param.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/pathname.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/pcpu.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/policy.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/proc.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/random.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/refstr.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/rwlock.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/sdt.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/sema.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/sid.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/sig.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/stat.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/string.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/sunddi.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/systeminfo.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/systm.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/taskq.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/time.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/types.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/uio.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/varargs.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/vfs.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/vnode.h
    stable/0.6/sys/cddl/compat/opensolaris/sys/zone.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/bplist.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/bpobj.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/ddt.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/ddt_zap.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_diff.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_object.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_traverse.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_zfetch.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode_sync.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_deadlist.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_deleg.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dir.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_prop.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_scan.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_synctask.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/gzip.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/lzjb.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/metaslab.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/refcount.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/rrwlock.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sa.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sha256.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_config.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_errlog.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_history.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/space_map.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/arc.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/bplist.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/bpobj.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dbuf.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/ddt.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_impl.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_objset.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_traverse.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_tx.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_zfetch.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dnode.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dataset.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_deadlist.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_deleg.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dir.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_pool.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_prop.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_scan.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_synctask.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/metaslab.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/metaslab_impl.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/refcount.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/rrwlock.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/sa.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/sa_impl.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa_boot.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa_impl.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/space_map.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/txg.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/txg_impl.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/uberblock.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/uberblock_impl.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/unique.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_disk.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_file.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_impl.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zap.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zap_impl.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zap_leaf.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_acl.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_context.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_ctldir.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_debug.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_dir.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_fuid.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_ioctl.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_onexit.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_rlock.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_sa.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_stat.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_vfsops.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zil.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zil_impl.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio_checksum.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio_compress.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio_impl.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zrlock.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zvol.h
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/txg.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/uberblock.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/unique.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_cache.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_disk.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_file.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_label.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_mirror.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_missing.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_raidz.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_root.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap_leaf.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap_micro.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_byteswap.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_debug.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_fm.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_fuid.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_log.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_onexit.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_replay.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_rlock.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_sa.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio_checksum.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio_compress.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio_inject.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zle.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zrlock.c
    stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c
    stable/0.6/sys/modules/zfs/Makefile

Modified: stable/0.6/UPDATING
===================================================================
--- stable/0.6/UPDATING	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/UPDATING	2015-06-21 18:56:23 UTC (rev 7064)
@@ -1,5 +1,23 @@
 Updating Information for MidnightBSD users.
 
+20150621:
+	MidnightBSD 0.6.2 RELEASE
+
+	Added ZFS TRIM support which is enabled by default. To disable
+	ZFS TRIM support set vfs.zfs.trim.enabled=0 in loader.conf.
+
+	Creating new ZFS pools and adding new devices to existing pools
+	first performs a full device level TRIM which can take a significant
+	amount of time. The sysctl vfs.zfs.vdev.trim_on_init can be set to 0
+	to disable this behaviour.
+
+	ZFS TRIM requires the underlying device support BIO_DELETE which
+	is currently provided by methods such as ATA TRIM and SCSI UNMAP
+	via CAM, which are typically supported by SSD's.
+
+	Stats for ZFS TRIM can be monitored by looking at the sysctl's
+	under kstat.zfs.misc.zio_trim.
+
 20150612:
 	MidnightBSD 0.6.1 RELEASE
 

Modified: stable/0.6/cddl/lib/libzpool/Makefile
===================================================================
--- stable/0.6/cddl/lib/libzpool/Makefile	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/cddl/lib/libzpool/Makefile	2015-06-21 18:56:23 UTC (rev 7064)
@@ -26,7 +26,7 @@
 
 LIB=		zpool
 
-ZFS_COMMON_SRCS= ${ZFS_COMMON_OBJS:C/.o$/.c/} vdev_file.c
+ZFS_COMMON_SRCS= ${ZFS_COMMON_OBJS:C/.o$/.c/} vdev_file.c trim_map.c
 ZFS_SHARED_SRCS= ${ZFS_SHARED_OBJS:C/.o$/.c/}
 KERNEL_SRCS=	kernel.c taskq.c util.c
 LIST_SRCS=	list.c


Property changes on: stable/0.6/cddl/lib/libzpool/Makefile
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Modified: stable/0.6/sys/cddl/compat/opensolaris/kern/opensolaris_kstat.c
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/kern/opensolaris_kstat.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/kern/opensolaris_kstat.c	2015-06-21 18:56:23 UTC (rev 7064)
@@ -118,7 +118,7 @@
 		SYSCTL_ADD_PROC(&ksp->ks_sysctl_ctx,
 		    SYSCTL_CHILDREN(ksp->ks_sysctl_root), OID_AUTO, ksent->name,
 		    CTLTYPE_U64 | CTLFLAG_RD, ksent, sizeof(*ksent),
-		    kstat_sysctl, "QU", "");
+		    kstat_sysctl, "QU", ksent->desc);
 	}
 }
 


Property changes on: stable/0.6/sys/cddl/compat/opensolaris/kern/opensolaris_kstat.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.4
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/acl.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/acl.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/acl.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/acl.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.6
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/atomic.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/atomic.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/atomic.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/atomic.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.6
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/bitmap.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/bitmap.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/bitmap.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/bitmap.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.4
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/byteorder.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/byteorder.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/byteorder.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/byteorder.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.6
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/cmn_err.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/cmn_err.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/cmn_err.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/cmn_err.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.6
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/cpupart.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/cpupart.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/cpupart.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/cpupart.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.4
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/cpuvar.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/cpuvar.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/cpuvar.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/cpuvar.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.4
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/cpuvar_defs.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/cpuvar_defs.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/cpuvar_defs.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/cpuvar_defs.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.4
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/cred.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/cred.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/cred.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/cred.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.6
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/cyclic.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/cyclic.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/cyclic.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/cyclic.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.4
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/cyclic_impl.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/cyclic_impl.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/cyclic_impl.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/cyclic_impl.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.4
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/debug.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/debug.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/debug.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/debug.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.6
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/dirent.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/dirent.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/dirent.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/dirent.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.6
\ No newline at end of property
Modified: stable/0.6/sys/cddl/compat/opensolaris/sys/dkio.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/dkio.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/dkio.h	2015-06-21 18:56:23 UTC (rev 7064)
@@ -75,6 +75,8 @@
  */
 #define	DKIOCFLUSHWRITECACHE	(DKIOC|34)	/* flush cache to phys medium */
 
+#define	DKIOCTRIM		(DKIOC|35)	/* TRIM a block */
+
 struct dk_callback {
 	void (*dkc_callback)(void *dkc_cookie, int error);
 	void *dkc_cookie;


Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/dkio.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.6
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/dnlc.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/dnlc.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/dnlc.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/dnlc.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.6
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/elf.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/elf.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/elf.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/elf.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.4
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/feature_tests.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/feature_tests.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/feature_tests.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/feature_tests.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.4
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/file.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/file.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/file.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/file.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1.1.1
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/kcondvar.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/kcondvar.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/kcondvar.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/kcondvar.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.6
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/kidmap.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/kidmap.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/kidmap.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/kidmap.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1.1.1
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/kmem.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/kmem.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/kmem.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/kmem.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.6
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/kobj.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/kobj.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/kobj.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/kobj.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.6
\ No newline at end of property
Modified: stable/0.6/sys/cddl/compat/opensolaris/sys/kstat.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/kstat.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/kstat.h	2015-06-21 18:56:23 UTC (rev 7064)
@@ -53,6 +53,8 @@
 #define	KSTAT_DATA_INT64	3
 #define	KSTAT_DATA_UINT64	4
 	uchar_t	data_type;
+#define	KSTAT_DESCLEN		128
+	char	desc[KSTAT_DESCLEN];
 	union {
 		uint64_t	ui64;
 	} value;


Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/kstat.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.6
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/lock.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/lock.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/lock.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/lock.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.6
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/misc.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/misc.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/misc.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/misc.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.6
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/mman.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/mman.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/mman.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/mman.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.4
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/mntent.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/mntent.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/mntent.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/mntent.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.6
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/mnttab.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/mnttab.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/mnttab.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/mnttab.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.6
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/modctl.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/modctl.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/modctl.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/modctl.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.4
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/mount.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/mount.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/mount.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/mount.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.6
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/mutex.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/mutex.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/mutex.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/mutex.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.6
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/objfs.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/objfs.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/objfs.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/objfs.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.4
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/param.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/param.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/param.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/param.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.4
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/pathname.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/pathname.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/pathname.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/pathname.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1.1.1
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/pcpu.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/pcpu.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/pcpu.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/pcpu.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.4
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/policy.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/policy.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/policy.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/policy.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.6
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/proc.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/proc.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/proc.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/proc.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.6
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/random.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/random.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/random.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/random.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.6
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/refstr.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/refstr.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/refstr.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/refstr.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1.1.1
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/rwlock.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/rwlock.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/rwlock.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/rwlock.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.6
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/sdt.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/sdt.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/sdt.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/sdt.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.6
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/sema.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/sema.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/sema.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/sema.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.4
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/sid.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/sid.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/sid.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/sid.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1.1.1
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/sig.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/sig.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/sig.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/sig.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1.1.1
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/stat.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/stat.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/stat.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/stat.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.4
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/string.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/string.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/string.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/string.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.6
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/sunddi.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/sunddi.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/sunddi.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/sunddi.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.7
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/systeminfo.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/systeminfo.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/systeminfo.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/systeminfo.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1.1.1
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/systm.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/systm.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/systm.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/systm.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.7
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/taskq.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/taskq.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/taskq.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/taskq.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.6
\ No newline at end of property
Modified: stable/0.6/sys/cddl/compat/opensolaris/sys/time.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/time.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/time.h	2015-06-21 18:56:23 UTC (rev 7064)
@@ -35,6 +35,7 @@
 #define MILLISEC	1000
 #define MICROSEC	1000000
 #define NANOSEC		1000000000
+#define TIME_MAX	LLONG_MAX
 
 typedef longlong_t	hrtime_t;
 


Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/time.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.6
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/types.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/types.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/types.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/types.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.6
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/uio.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/uio.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/uio.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/uio.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.6
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/varargs.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/varargs.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/varargs.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/varargs.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.6
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/vfs.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/vfs.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/vfs.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/vfs.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.6
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/vnode.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/vnode.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/vnode.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/vnode.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.6
\ No newline at end of property
Index: stable/0.6/sys/cddl/compat/opensolaris/sys/zone.h
===================================================================
--- stable/0.6/sys/cddl/compat/opensolaris/sys/zone.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/compat/opensolaris/sys/zone.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/compat/opensolaris/sys/zone.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.6
\ No newline at end of property
Modified: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c	2015-06-21 18:56:23 UTC (rev 7064)
@@ -130,6 +130,7 @@
 #endif
 #include <sys/callb.h>
 #include <sys/kstat.h>
+#include <sys/trim_map.h>
 #include <zfs_fletcher.h>
 #include <sys/sdt.h>
 
@@ -1599,6 +1600,8 @@
 		}
 
 		if (l2hdr != NULL) {
+			trim_map_free(l2hdr->b_dev->l2ad_vdev, l2hdr->b_daddr,
+			    hdr->b_size, 0);
 			list_remove(l2hdr->b_dev->l2ad_buflist, hdr);
 			ARCSTAT_INCR(arcstat_l2_size, -hdr->b_size);
 			kmem_free(l2hdr, sizeof (l2arc_buf_hdr_t));
@@ -3401,6 +3404,8 @@
 	buf->b_private = NULL;
 
 	if (l2hdr) {
+		trim_map_free(l2hdr->b_dev->l2ad_vdev, l2hdr->b_daddr,
+		    hdr->b_size, 0);
 		list_remove(l2hdr->b_dev->l2ad_buflist, hdr);
 		kmem_free(l2hdr, sizeof (l2arc_buf_hdr_t));
 		ARCSTAT_INCR(arcstat_l2_size, -buf_size);
@@ -4314,6 +4319,8 @@
 			list_remove(buflist, ab);
 			abl2 = ab->b_l2hdr;
 			ab->b_l2hdr = NULL;
+			trim_map_free(abl2->b_dev->l2ad_vdev, abl2->b_daddr,
+			    ab->b_size, 0);
 			kmem_free(abl2, sizeof (l2arc_buf_hdr_t));
 			ARCSTAT_INCR(arcstat_l2_size, -ab->b_size);
 		}


Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.4
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/bplist.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/bplist.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/bplist.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/bplist.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/bpobj.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/bpobj.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/bpobj.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/bpobj.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1.1.1
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/ddt.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/ddt.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/ddt.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/ddt.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1.1.1
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/ddt_zap.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/ddt_zap.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/ddt_zap.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/ddt_zap.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1.1.1
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_diff.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_diff.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_diff.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_diff.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1.1.1
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_object.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_object.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_object.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_object.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_traverse.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_traverse.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_traverse.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_traverse.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_zfetch.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_zfetch.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_zfetch.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_zfetch.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.4
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode_sync.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode_sync.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode_sync.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode_sync.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_deadlist.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_deadlist.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_deadlist.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_deadlist.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1.1.1
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_deleg.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_deleg.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_deleg.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_deleg.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1.1.1
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dir.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dir.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dir.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dir.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_prop.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_prop.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_prop.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_prop.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Modified: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_scan.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_scan.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_scan.c	2015-06-21 18:56:23 UTC (rev 7064)
@@ -361,7 +361,8 @@
 dsl_free_sync(zio_t *pio, dsl_pool_t *dp, uint64_t txg, const blkptr_t *bpp)
 {
 	ASSERT(dsl_pool_sync_context(dp));
-	zio_nowait(zio_free_sync(pio, dp->dp_spa, txg, bpp, pio->io_flags));
+	zio_nowait(zio_free_sync(pio, dp->dp_spa, txg, bpp, BP_GET_PSIZE(bpp),
+	    pio->io_flags));
 }
 
 int
@@ -1411,7 +1412,7 @@
 		return (ERESTART);
 
 	zio_nowait(zio_free_sync(scn->scn_zio_root, scn->scn_dp->dp_spa,
-	    dmu_tx_get_txg(tx), bp, 0));
+	    dmu_tx_get_txg(tx), bp, BP_GET_PSIZE(bp), 0));
 	dsl_dir_diduse_space(tx->tx_pool->dp_free_dir, DD_USED_HEAD,
 	    -bp_get_dsize_sync(scn->scn_dp->dp_spa, bp),
 	    -BP_GET_PSIZE(bp), -BP_GET_UCSIZE(bp), tx);


Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_scan.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1.1.1
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_synctask.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_synctask.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_synctask.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_synctask.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/gzip.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/gzip.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/gzip.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/gzip.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/lzjb.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/lzjb.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/lzjb.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/lzjb.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/metaslab.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/metaslab.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/metaslab.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/metaslab.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/refcount.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/refcount.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/refcount.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/refcount.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.4
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/rrwlock.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/rrwlock.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/rrwlock.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/rrwlock.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1.1.1
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sa.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sa.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sa.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sa.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1.1.1
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sha256.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sha256.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sha256.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sha256.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Modified: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c	2015-06-21 18:56:23 UTC (rev 7064)
@@ -61,6 +61,7 @@
 #include <sys/zfs_ioctl.h>
 #include <sys/dsl_scan.h>
 #include <sys/zvol.h>
+#include <sys/trim_map.h>
 
 #ifdef	_KERNEL
 #include <sys/callb.h>
@@ -880,6 +881,11 @@
 		spa_create_zio_taskqs(spa);
 	}
 
+	/*
+	 * Start TRIM thread.
+	 */
+	trim_thread_create(spa);
+
 	list_create(&spa->spa_config_dirty_list, sizeof (vdev_t),
 	    offsetof(vdev_t, vdev_config_dirty_node));
 	list_create(&spa->spa_state_dirty_list, sizeof (vdev_t),
@@ -908,6 +914,12 @@
 	ASSERT(spa->spa_async_zio_root == NULL);
 	ASSERT(spa->spa_state != POOL_STATE_UNINITIALIZED);
 
+	/*
+	 * Stop TRIM thread in case spa_unload() wasn't called directly
+	 * before spa_deactivate().
+	 */
+	trim_thread_destroy(spa);
+
 	txg_list_destroy(&spa->spa_vdev_txg_list);
 
 	list_destroy(&spa->spa_config_dirty_list);
@@ -1024,6 +1036,11 @@
 	ASSERT(MUTEX_HELD(&spa_namespace_lock));
 
 	/*
+	 * Stop TRIM thread.
+	 */
+	trim_thread_destroy(spa);
+
+	/*
 	 * Stop async tasks.
 	 */
 	spa_async_suspend(spa);
@@ -5309,7 +5326,7 @@
 	zio_t *zio = arg;
 
 	zio_nowait(zio_free_sync(zio, zio->io_spa, dmu_tx_get_txg(tx), bp,
-	    zio->io_flags));
+	    BP_GET_PSIZE(bp), zio->io_flags));
 	return (0);
 }
 


Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_config.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_config.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_config.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_config.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_errlog.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_errlog.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_errlog.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_errlog.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_history.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_history.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_history.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_history.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.4
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/space_map.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/space_map.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/space_map.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/space_map.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/arc.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/arc.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/arc.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/arc.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/bplist.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/bplist.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/bplist.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/bplist.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/bpobj.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/bpobj.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/bpobj.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/bpobj.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1.1.1
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dbuf.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dbuf.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dbuf.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dbuf.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/ddt.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/ddt.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/ddt.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/ddt.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1.1.1
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_impl.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_impl.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_impl.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_impl.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_objset.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_objset.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_objset.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_objset.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_traverse.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_traverse.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_traverse.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_traverse.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_tx.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_tx.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_tx.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_tx.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_zfetch.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_zfetch.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_zfetch.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_zfetch.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dnode.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dnode.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dnode.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dnode.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dataset.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dataset.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dataset.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dataset.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_deadlist.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_deadlist.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_deadlist.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_deadlist.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1.1.1
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_deleg.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_deleg.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_deleg.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_deleg.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1.1.1
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dir.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dir.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dir.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dir.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_pool.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_pool.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_pool.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_pool.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_prop.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_prop.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_prop.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_prop.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_scan.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_scan.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_scan.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_scan.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1.1.1
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_synctask.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_synctask.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_synctask.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_synctask.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/metaslab.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/metaslab.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/metaslab.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/metaslab.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/metaslab_impl.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/metaslab_impl.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/metaslab_impl.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/metaslab_impl.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/refcount.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/refcount.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/refcount.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/refcount.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.4
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/rrwlock.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/rrwlock.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/rrwlock.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/rrwlock.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1.1.1
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/sa.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/sa.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/sa.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/sa.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1.1.1
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/sa_impl.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/sa_impl.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/sa_impl.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/sa_impl.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1.1.1
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.4
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa_boot.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa_boot.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa_boot.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa_boot.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1.1.1
\ No newline at end of property
Modified: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa_impl.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa_impl.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa_impl.h	2015-06-21 18:56:23 UTC (rev 7064)
@@ -217,6 +217,9 @@
 	spa_proc_state_t spa_proc_state;	/* see definition */
 	struct proc	*spa_proc;		/* "zpool-poolname" process */
 	uint64_t	spa_did;		/* if procp != p0, did of t1 */
+	kthread_t	*spa_trim_thread;	/* thread sending TRIM I/Os */
+	kmutex_t	spa_trim_lock;		/* protects spa_trim_cv */
+	kcondvar_t	spa_trim_cv;		/* used to notify TRIM thread */
 	boolean_t	spa_autoreplace;	/* autoreplace set in open */
 	int		spa_vdev_locks;		/* locks grabbed */
 	uint64_t	spa_creation_version;	/* version at pool creation */


Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa_impl.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/space_map.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/space_map.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/space_map.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/space_map.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Added: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/trim_map.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/trim_map.h	                        (rev 0)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/trim_map.h	2015-06-21 18:56:23 UTC (rev 7064)
@@ -0,0 +1,51 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright (c) 2012 Pawel Jakub Dawidek <pawel at dawidek.net>.
+ * All rights reserved.
+ */
+
+#ifndef _SYS_TRIM_MAP_H
+#define	_SYS_TRIM_MAP_H
+
+#include <sys/avl.h>
+#include <sys/list.h>
+#include <sys/spa.h>
+
+#ifdef	__cplusplus
+extern "C" {
+#endif
+
+extern void trim_map_create(vdev_t *vd);
+extern void trim_map_destroy(vdev_t *vd);
+extern void trim_map_free(vdev_t *vd, uint64_t offset, uint64_t size, uint64_t txg);
+extern boolean_t trim_map_write_start(zio_t *zio);
+extern void trim_map_write_done(zio_t *zio);
+
+extern void trim_thread_create(spa_t *spa);
+extern void trim_thread_destroy(spa_t *spa);
+extern void trim_thread_wakeup(spa_t *spa);
+
+#ifdef	__cplusplus
+}
+#endif
+
+#endif	/* _SYS_TRIM_MAP_H */


Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/trim_map.h
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/txg.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/txg.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/txg.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/txg.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/txg_impl.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/txg_impl.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/txg_impl.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/txg_impl.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/uberblock.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/uberblock.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/uberblock.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/uberblock.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/uberblock_impl.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/uberblock_impl.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/uberblock_impl.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/uberblock_impl.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/unique.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/unique.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/unique.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/unique.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Modified: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev.h	2015-06-21 18:56:23 UTC (rev 7064)
@@ -45,6 +45,7 @@
 } vdev_dtl_type_t;
 
 extern boolean_t zfs_nocacheflush;
+extern boolean_t zfs_trim_enabled;
 
 extern int vdev_open(vdev_t *);
 extern void vdev_open_children(vdev_t *);


Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_disk.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_disk.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_disk.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_disk.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_file.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_file.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_file.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_file.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Modified: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_impl.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_impl.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_impl.h	2015-06-21 18:56:23 UTC (rev 7064)
@@ -182,6 +182,7 @@
 	uint64_t	vdev_unspare;	/* unspare when resilvering done */
 	hrtime_t	vdev_last_try;	/* last reopen time		*/
 	boolean_t	vdev_nowritecache; /* true if flushwritecache failed */
+	boolean_t	vdev_notrim;	/* true if trim failed */
 	boolean_t	vdev_checkremove; /* temporary online test	*/
 	boolean_t	vdev_forcefault; /* force online fault		*/
 	boolean_t	vdev_splitting;	/* split or repair in progress  */
@@ -197,6 +198,7 @@
 	spa_aux_vdev_t	*vdev_aux;	/* for l2cache vdevs		*/
 	zio_t		*vdev_probe_zio; /* root of current probe	*/
 	vdev_aux_t	vdev_label_aux;	/* on-disk aux state		*/
+	struct trim_map	*vdev_trimmap;
 
 	/*
 	 * For DTrace to work in userland (libzpool) context, these fields must


Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_impl.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zap.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zap.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zap.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zap.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zap_impl.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zap_impl.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zap_impl.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zap_impl.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zap_leaf.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zap_leaf.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zap_leaf.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zap_leaf.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_acl.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_acl.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_acl.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_acl.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_context.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_context.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_context.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_context.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_ctldir.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_ctldir.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_ctldir.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_ctldir.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_debug.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_debug.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_debug.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_debug.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_dir.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_dir.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_dir.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_dir.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_fuid.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_fuid.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_fuid.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_fuid.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1.1.1
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_ioctl.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_ioctl.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_ioctl.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_ioctl.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_onexit.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_onexit.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_onexit.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_onexit.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1.1.1
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_rlock.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_rlock.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_rlock.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_rlock.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_sa.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_sa.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_sa.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_sa.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1.1.1
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_stat.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_stat.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_stat.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_stat.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1.1.1
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_vfsops.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_vfsops.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_vfsops.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_vfsops.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.4
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zil.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zil.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zil.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zil.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zil_impl.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zil_impl.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zil_impl.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zil_impl.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Modified: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio.h	2015-06-21 18:56:23 UTC (rev 7064)
@@ -30,6 +30,7 @@
 #include <sys/spa.h>
 #include <sys/txg.h>
 #include <sys/avl.h>
+#include <sys/kstat.h>
 #include <sys/fs/zfs.h>
 #include <sys/zio_impl.h>
 
@@ -132,7 +133,8 @@
 #define	ZIO_PRIORITY_RESILVER		(zio_priority_table[9])
 #define	ZIO_PRIORITY_SCRUB		(zio_priority_table[10])
 #define	ZIO_PRIORITY_DDT_PREFETCH	(zio_priority_table[11])
-#define	ZIO_PRIORITY_TABLE_SIZE		12
+#define	ZIO_PRIORITY_TRIM		(zio_priority_table[12])
+#define	ZIO_PRIORITY_TABLE_SIZE		13
 
 #define	ZIO_PIPELINE_CONTINUE		0x100
 #define	ZIO_PIPELINE_STOP		0x101
@@ -350,6 +352,39 @@
 	list_node_t	zl_child_node;
 } zio_link_t;
 
+/*
+ * Used for TRIM kstat.
+ */
+typedef struct zio_trim_stats {
+	/*
+	 * Number of bytes successfully TRIMmed.
+	 */
+	kstat_named_t bytes;
+
+	/*
+	 * Number of successful TRIM requests.
+	 */
+	kstat_named_t success;
+
+	/*
+	 * Number of TRIM requests that failed because TRIM is not
+	 * supported.
+	 */
+	kstat_named_t unsupported;
+
+	/*
+	 * Number of TRIM requests that failed for other reasons.
+	 */
+	kstat_named_t failed;
+} zio_trim_stats_t;
+
+extern zio_trim_stats_t zio_trim_stats;
+
+#define ZIO_TRIM_STAT_INCR(stat, val) \
+	atomic_add_64(&zio_trim_stats.stat.value.ui64, (val));
+#define ZIO_TRIM_STAT_BUMP(stat) \
+	ZIO_TRIM_STAT_INCR(stat, 1);
+
 struct zio {
 	/* Core information about this I/O */
 	zbookmark_t	io_bookmark;
@@ -423,6 +458,8 @@
 	/* FreeBSD only. */
 	struct ostask	io_task;
 #endif
+	avl_node_t	io_trim_node;
+	list_node_t	io_trim_link;
 };
 
 extern zio_t *zio_null(zio_t *pio, spa_t *spa, vdev_t *vd,
@@ -453,8 +490,8 @@
     zio_done_func_t *done, void *priv, enum zio_flag flags);
 
 extern zio_t *zio_ioctl(zio_t *pio, spa_t *spa, vdev_t *vd, int cmd,
-    zio_done_func_t *done, void *priv, int priority,
-    enum zio_flag flags);
+    uint64_t offset, uint64_t size, zio_done_func_t *done, void *priv,
+    int priority, enum zio_flag flags);
 
 extern zio_t *zio_read_phys(zio_t *pio, vdev_t *vd, uint64_t offset,
     uint64_t size, void *data, int checksum,
@@ -467,12 +504,14 @@
     boolean_t labels);
 
 extern zio_t *zio_free_sync(zio_t *pio, spa_t *spa, uint64_t txg,
-    const blkptr_t *bp, enum zio_flag flags);
+    const blkptr_t *bp, uint64_t size, enum zio_flag flags);
 
 extern int zio_alloc_zil(spa_t *spa, uint64_t txg, blkptr_t *new_bp,
     blkptr_t *old_bp, uint64_t size, boolean_t use_slog);
 extern void zio_free_zil(spa_t *spa, uint64_t txg, blkptr_t *bp);
 extern void zio_flush(zio_t *zio, vdev_t *vd);
+extern zio_t *zio_trim(zio_t *zio, spa_t *spa, vdev_t *vd, uint64_t offset,
+    uint64_t size);
 extern void zio_shrink(zio_t *zio, uint64_t size);
 
 extern int zio_wait(zio_t *zio);


Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio_checksum.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio_checksum.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio_checksum.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio_checksum.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio_compress.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio_compress.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio_compress.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio_compress.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Modified: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio_impl.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio_impl.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio_impl.h	2015-06-21 18:56:23 UTC (rev 7064)
@@ -60,9 +60,9 @@
 
 	ZIO_STAGE_READY			= 1 << 15,	/* RWFCI */
 
-	ZIO_STAGE_VDEV_IO_START		= 1 << 16,	/* RW--I */
-	ZIO_STAGE_VDEV_IO_DONE		= 1 << 17,	/* RW--I */
-	ZIO_STAGE_VDEV_IO_ASSESS	= 1 << 18,	/* RW--I */
+	ZIO_STAGE_VDEV_IO_START		= 1 << 16,	/* RWF-I */
+	ZIO_STAGE_VDEV_IO_DONE		= 1 << 17,	/* RWF-- */
+	ZIO_STAGE_VDEV_IO_ASSESS	= 1 << 18,	/* RWF-I */
 
 	ZIO_STAGE_CHECKSUM_VERIFY	= 1 << 19,	/* R---- */
 
@@ -143,7 +143,9 @@
 #define	ZIO_FREE_PIPELINE			\
 	(ZIO_INTERLOCK_STAGES |			\
 	ZIO_STAGE_FREE_BP_INIT |		\
-	ZIO_STAGE_DVA_FREE)
+	ZIO_STAGE_DVA_FREE |			\
+	ZIO_STAGE_VDEV_IO_START |		\
+	ZIO_STAGE_VDEV_IO_ASSESS)
 
 #define	ZIO_DDT_FREE_PIPELINE			\
 	(ZIO_INTERLOCK_STAGES |			\


Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio_impl.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zrlock.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zrlock.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zrlock.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zrlock.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1.1.1
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zvol.h
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zvol.h	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zvol.h	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zvol.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Added: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/trim_map.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/trim_map.c	                        (rev 0)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/trim_map.c	2015-06-21 18:56:23 UTC (rev 7064)
@@ -0,0 +1,638 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright (c) 2012 Pawel Jakub Dawidek <pawel at dawidek.net>.
+ * All rights reserved.
+ */
+
+#include <sys/zfs_context.h>
+#include <sys/spa_impl.h>
+#include <sys/vdev_impl.h>
+#include <sys/trim_map.h>
+#include <sys/time.h>
+
+/*
+ * Calculate the zio end, upgrading based on ashift which would be
+ * done by zio_vdev_io_start.
+ *
+ * This makes free range consolidation much more effective
+ * than it would otherwise be as well as ensuring that entire
+ * blocks are invalidated by writes.
+ */
+#define	TRIM_ZIO_END(vd, offset, size)	(offset +		\
+ 	P2ROUNDUP(size, 1ULL << vd->vdev_top->vdev_ashift))
+
+#define TRIM_MAP_SINC(tm, size)					\
+	atomic_add_64(&(tm)->tm_bytes, (size))
+
+#define TRIM_MAP_SDEC(tm, size)					\
+	atomic_add_64(&(tm)->tm_bytes, -(size))
+
+#define TRIM_MAP_QINC(tm)					\
+	atomic_inc_64(&(tm)->tm_pending);			\
+
+#define TRIM_MAP_QDEC(tm)					\
+	atomic_dec_64(&(tm)->tm_pending);
+
+typedef struct trim_map {
+	list_t		tm_head;		/* List of segments sorted by txg. */
+	avl_tree_t	tm_queued_frees;	/* AVL tree of segments waiting for TRIM. */
+	avl_tree_t	tm_inflight_frees;	/* AVL tree of in-flight TRIMs. */
+	avl_tree_t	tm_inflight_writes;	/* AVL tree of in-flight writes. */
+	list_t		tm_pending_writes;	/* Writes blocked on in-flight frees. */
+	kmutex_t	tm_lock;
+	uint64_t	tm_pending;		/* Count of pending TRIMs. */
+	uint64_t	tm_bytes;		/* Total size in bytes of queued TRIMs. */
+} trim_map_t;
+
+typedef struct trim_seg {
+	avl_node_t	ts_node;	/* AVL node. */
+	list_node_t	ts_next;	/* List element. */
+	uint64_t	ts_start;	/* Starting offset of this segment. */
+	uint64_t	ts_end;		/* Ending offset (non-inclusive). */
+	uint64_t	ts_txg;		/* Segment creation txg. */
+	hrtime_t	ts_time;	/* Segment creation time. */
+} trim_seg_t;
+
+extern boolean_t zfs_trim_enabled;
+
+static u_int trim_txg_delay = 32;
+static u_int trim_timeout = 30;
+static u_int trim_max_interval = 1;
+/* Limit outstanding TRIMs to 2G (max size for a single TRIM request) */
+static uint64_t trim_vdev_max_bytes = 2147483648;
+/* Limit outstanding TRIMs to 64 (max ranges for a single TRIM request) */	
+static u_int trim_vdev_max_pending = 64;
+
+SYSCTL_DECL(_vfs_zfs);
+SYSCTL_NODE(_vfs_zfs, OID_AUTO, trim, CTLFLAG_RD, 0, "ZFS TRIM");
+
+TUNABLE_INT("vfs.zfs.trim.txg_delay", &trim_txg_delay);
+SYSCTL_UINT(_vfs_zfs_trim, OID_AUTO, txg_delay, CTLFLAG_RWTUN, &trim_txg_delay,
+    0, "Delay TRIMs by up to this many TXGs");
+
+TUNABLE_INT("vfs.zfs.trim.timeout", &trim_timeout);
+SYSCTL_UINT(_vfs_zfs_trim, OID_AUTO, timeout, CTLFLAG_RWTUN, &trim_timeout, 0,
+    "Delay TRIMs by up to this many seconds");
+
+TUNABLE_INT("vfs.zfs.trim.max_interval", &trim_max_interval);
+SYSCTL_UINT(_vfs_zfs_trim, OID_AUTO, max_interval, CTLFLAG_RWTUN,
+    &trim_max_interval, 0,
+    "Maximum interval between TRIM queue processing (seconds)");
+
+SYSCTL_DECL(_vfs_zfs_vdev);
+TUNABLE_QUAD("vfs.zfs.vdev.trim_max_bytes", &trim_vdev_max_bytes);
+SYSCTL_QUAD(_vfs_zfs_vdev, OID_AUTO, trim_max_bytes, CTLFLAG_RWTUN,
+    &trim_vdev_max_bytes, 0,
+    "Maximum pending TRIM bytes for a vdev");
+
+TUNABLE_INT("vfs.zfs.vdev.trim_max_pending", &trim_vdev_max_pending);
+SYSCTL_UINT(_vfs_zfs_vdev, OID_AUTO, trim_max_pending, CTLFLAG_RWTUN,
+    &trim_vdev_max_pending, 0,
+    "Maximum pending TRIM segments for a vdev");
+
+
+static void trim_map_vdev_commit_done(spa_t *spa, vdev_t *vd);
+
+static int
+trim_map_seg_compare(const void *x1, const void *x2)
+{
+	const trim_seg_t *s1 = x1;
+	const trim_seg_t *s2 = x2;
+
+	if (s1->ts_start < s2->ts_start) {
+		if (s1->ts_end > s2->ts_start)
+			return (0);
+		return (-1);
+	}
+	if (s1->ts_start > s2->ts_start) {
+		if (s1->ts_start < s2->ts_end)
+			return (0);
+		return (1);
+	}
+	return (0);
+}
+
+static int
+trim_map_zio_compare(const void *x1, const void *x2)
+{
+	const zio_t *z1 = x1;
+	const zio_t *z2 = x2;
+
+	if (z1->io_offset < z2->io_offset) {
+		if (z1->io_offset + z1->io_size > z2->io_offset)
+			return (0);
+		return (-1);
+	}
+	if (z1->io_offset > z2->io_offset) {
+		if (z1->io_offset < z2->io_offset + z2->io_size)
+			return (0);
+		return (1);
+	}
+	return (0);
+}
+
+void
+trim_map_create(vdev_t *vd)
+{
+	trim_map_t *tm;
+
+	ASSERT(vd->vdev_ops->vdev_op_leaf);
+
+	if (!zfs_trim_enabled)
+		return;
+
+	tm = kmem_zalloc(sizeof (*tm), KM_SLEEP);
+	mutex_init(&tm->tm_lock, NULL, MUTEX_DEFAULT, NULL);
+	list_create(&tm->tm_head, sizeof (trim_seg_t),
+	    offsetof(trim_seg_t, ts_next));
+	list_create(&tm->tm_pending_writes, sizeof (zio_t),
+	    offsetof(zio_t, io_trim_link));
+	avl_create(&tm->tm_queued_frees, trim_map_seg_compare,
+	    sizeof (trim_seg_t), offsetof(trim_seg_t, ts_node));
+	avl_create(&tm->tm_inflight_frees, trim_map_seg_compare,
+	    sizeof (trim_seg_t), offsetof(trim_seg_t, ts_node));
+	avl_create(&tm->tm_inflight_writes, trim_map_zio_compare,
+	    sizeof (zio_t), offsetof(zio_t, io_trim_node));
+	vd->vdev_trimmap = tm;
+}
+
+void
+trim_map_destroy(vdev_t *vd)
+{
+	trim_map_t *tm;
+	trim_seg_t *ts;
+
+	ASSERT(vd->vdev_ops->vdev_op_leaf);
+
+	if (!zfs_trim_enabled)
+		return;
+
+	tm = vd->vdev_trimmap;
+	if (tm == NULL)
+		return;
+
+	/*
+	 * We may have been called before trim_map_vdev_commit_done()
+	 * had a chance to run, so do it now to prune the remaining
+	 * inflight frees.
+	 */
+	trim_map_vdev_commit_done(vd->vdev_spa, vd);
+
+	mutex_enter(&tm->tm_lock);
+	while ((ts = list_head(&tm->tm_head)) != NULL) {
+		avl_remove(&tm->tm_queued_frees, ts);
+		list_remove(&tm->tm_head, ts);
+		kmem_free(ts, sizeof (*ts));
+		TRIM_MAP_SDEC(tm, ts->ts_end - ts->ts_start);
+		TRIM_MAP_QDEC(tm);
+	}
+	mutex_exit(&tm->tm_lock);
+
+	avl_destroy(&tm->tm_queued_frees);
+	avl_destroy(&tm->tm_inflight_frees);
+	avl_destroy(&tm->tm_inflight_writes);
+	list_destroy(&tm->tm_pending_writes);
+	list_destroy(&tm->tm_head);
+	mutex_destroy(&tm->tm_lock);
+	kmem_free(tm, sizeof (*tm));
+	vd->vdev_trimmap = NULL;
+}
+
+static void
+trim_map_segment_add(trim_map_t *tm, uint64_t start, uint64_t end, uint64_t txg)
+{
+	avl_index_t where;
+	trim_seg_t tsearch, *ts_before, *ts_after, *ts;
+	boolean_t merge_before, merge_after;
+	hrtime_t time;
+
+	ASSERT(MUTEX_HELD(&tm->tm_lock));
+	VERIFY(start < end);
+
+	time = gethrtime();
+	tsearch.ts_start = start;
+	tsearch.ts_end = end;
+
+	ts = avl_find(&tm->tm_queued_frees, &tsearch, &where);
+	if (ts != NULL) {
+		if (start < ts->ts_start)
+			trim_map_segment_add(tm, start, ts->ts_start, txg);
+		if (end > ts->ts_end)
+			trim_map_segment_add(tm, ts->ts_end, end, txg);
+		return;
+	}
+
+	ts_before = avl_nearest(&tm->tm_queued_frees, where, AVL_BEFORE);
+	ts_after = avl_nearest(&tm->tm_queued_frees, where, AVL_AFTER);
+
+	merge_before = (ts_before != NULL && ts_before->ts_end == start);
+	merge_after = (ts_after != NULL && ts_after->ts_start == end);
+
+	if (merge_before && merge_after) {
+		TRIM_MAP_SINC(tm, ts_after->ts_start - ts_before->ts_end);
+		TRIM_MAP_QDEC(tm);
+		avl_remove(&tm->tm_queued_frees, ts_before);
+		list_remove(&tm->tm_head, ts_before);
+		ts_after->ts_start = ts_before->ts_start;
+		ts_after->ts_txg = txg;
+		ts_after->ts_time = time;
+		kmem_free(ts_before, sizeof (*ts_before));
+	} else if (merge_before) {
+		TRIM_MAP_SINC(tm, end - ts_before->ts_end);
+		ts_before->ts_end = end;
+		ts_before->ts_txg = txg;
+		ts_before->ts_time = time;
+	} else if (merge_after) {
+		TRIM_MAP_SINC(tm, ts_after->ts_start - start);
+		ts_after->ts_start = start;
+		ts_after->ts_txg = txg;
+		ts_after->ts_time = time;
+	} else {
+		TRIM_MAP_SINC(tm, end - start);
+		TRIM_MAP_QINC(tm);
+		ts = kmem_alloc(sizeof (*ts), KM_SLEEP);
+		ts->ts_start = start;
+		ts->ts_end = end;
+		ts->ts_txg = txg;
+		ts->ts_time = time;
+		avl_insert(&tm->tm_queued_frees, ts, where);
+		list_insert_tail(&tm->tm_head, ts);
+	}
+}
+
+static void
+trim_map_segment_remove(trim_map_t *tm, trim_seg_t *ts, uint64_t start,
+    uint64_t end)
+{
+	trim_seg_t *nts;
+	boolean_t left_over, right_over;
+
+	ASSERT(MUTEX_HELD(&tm->tm_lock));
+
+	left_over = (ts->ts_start < start);
+	right_over = (ts->ts_end > end);
+
+	TRIM_MAP_SDEC(tm, end - start);
+	if (left_over && right_over) {
+		nts = kmem_alloc(sizeof (*nts), KM_SLEEP);
+		nts->ts_start = end;
+		nts->ts_end = ts->ts_end;
+		nts->ts_txg = ts->ts_txg;
+		nts->ts_time = ts->ts_time;
+		ts->ts_end = start;
+		avl_insert_here(&tm->tm_queued_frees, nts, ts, AVL_AFTER);
+		list_insert_after(&tm->tm_head, ts, nts);
+		TRIM_MAP_QINC(tm);
+	} else if (left_over) {
+		ts->ts_end = start;
+	} else if (right_over) {
+		ts->ts_start = end;
+	} else {
+		avl_remove(&tm->tm_queued_frees, ts);
+		list_remove(&tm->tm_head, ts);
+		TRIM_MAP_QDEC(tm);
+		kmem_free(ts, sizeof (*ts));
+	}
+}
+
+static void
+trim_map_free_locked(trim_map_t *tm, uint64_t start, uint64_t end, uint64_t txg)
+{
+	zio_t zsearch, *zs;
+
+	ASSERT(MUTEX_HELD(&tm->tm_lock));
+
+	zsearch.io_offset = start;
+	zsearch.io_size = end - start;
+
+	zs = avl_find(&tm->tm_inflight_writes, &zsearch, NULL);
+	if (zs == NULL) {
+		trim_map_segment_add(tm, start, end, txg);
+		return;
+	}
+	if (start < zs->io_offset)
+		trim_map_free_locked(tm, start, zs->io_offset, txg);
+	if (zs->io_offset + zs->io_size < end)
+		trim_map_free_locked(tm, zs->io_offset + zs->io_size, end, txg);
+}
+
+void
+trim_map_free(vdev_t *vd, uint64_t offset, uint64_t size, uint64_t txg)
+{
+	trim_map_t *tm = vd->vdev_trimmap;
+
+	if (!zfs_trim_enabled || vd->vdev_notrim || tm == NULL)
+		return;
+
+	mutex_enter(&tm->tm_lock);
+	trim_map_free_locked(tm, offset, TRIM_ZIO_END(vd, offset, size), txg);
+	mutex_exit(&tm->tm_lock);
+}
+
+boolean_t
+trim_map_write_start(zio_t *zio)
+{
+	vdev_t *vd = zio->io_vd;
+	trim_map_t *tm = vd->vdev_trimmap;
+	trim_seg_t tsearch, *ts;
+	boolean_t left_over, right_over;
+	uint64_t start, end;
+
+	if (!zfs_trim_enabled || vd->vdev_notrim || tm == NULL)
+		return (B_TRUE);
+
+	start = zio->io_offset;
+	end = TRIM_ZIO_END(zio->io_vd, start, zio->io_size);
+	tsearch.ts_start = start;
+	tsearch.ts_end = end;
+
+	mutex_enter(&tm->tm_lock);
+
+	/*
+	 * Checking for colliding in-flight frees.
+	 */
+	ts = avl_find(&tm->tm_inflight_frees, &tsearch, NULL);
+	if (ts != NULL) {
+		list_insert_tail(&tm->tm_pending_writes, zio);
+		mutex_exit(&tm->tm_lock);
+		return (B_FALSE);
+	}
+
+	ts = avl_find(&tm->tm_queued_frees, &tsearch, NULL);
+	if (ts != NULL) {
+		/*
+		 * Loop until all overlapping segments are removed.
+		 */
+		do {
+			trim_map_segment_remove(tm, ts, start, end);
+			ts = avl_find(&tm->tm_queued_frees, &tsearch, NULL);
+		} while (ts != NULL);
+	}
+	avl_add(&tm->tm_inflight_writes, zio);
+
+	mutex_exit(&tm->tm_lock);
+
+	return (B_TRUE);
+}
+
+void
+trim_map_write_done(zio_t *zio)
+{
+	vdev_t *vd = zio->io_vd;
+	trim_map_t *tm = vd->vdev_trimmap;
+
+	/*
+	 * Don't check for vdev_notrim, since the write could have
+	 * started before vdev_notrim was set.
+	 */
+	if (!zfs_trim_enabled || tm == NULL)
+		return;
+
+	mutex_enter(&tm->tm_lock);
+	/*
+	 * Don't fail if the write isn't in the tree, since the write
+	 * could have started after vdev_notrim was set.
+	 */
+	if (zio->io_trim_node.avl_child[0] ||
+	    zio->io_trim_node.avl_child[1] ||
+	    AVL_XPARENT(&zio->io_trim_node) ||
+	    tm->tm_inflight_writes.avl_root == &zio->io_trim_node)
+		avl_remove(&tm->tm_inflight_writes, zio);
+	mutex_exit(&tm->tm_lock);
+}
+
+/*
+ * Return the oldest segment (the one with the lowest txg / time) or NULL if:
+ * 1. The list is empty
+ * 2. The first element's txg is greater than txgsafe
+ * 3. The first element's txg is not greater than the txg argument and the
+ *    the first element's time is not greater than time argument
+ */
+static trim_seg_t *
+trim_map_first(trim_map_t *tm, uint64_t txg, uint64_t txgsafe, hrtime_t time)
+{
+	trim_seg_t *ts;
+
+	ASSERT(MUTEX_HELD(&tm->tm_lock));
+	VERIFY(txgsafe >= txg);
+
+	ts = list_head(&tm->tm_head);
+	if (ts != NULL && ts->ts_txg <= txgsafe &&
+	    (ts->ts_txg <= txg || ts->ts_time <= time ||
+	    tm->tm_bytes > trim_vdev_max_bytes ||
+	    tm->tm_pending > trim_vdev_max_pending))
+		return (ts);
+	return (NULL);
+}
+
+static void
+trim_map_vdev_commit(spa_t *spa, zio_t *zio, vdev_t *vd)
+{
+	trim_map_t *tm = vd->vdev_trimmap;
+	trim_seg_t *ts;
+	uint64_t size, txgtarget, txgsafe;
+	hrtime_t timelimit;
+
+	ASSERT(vd->vdev_ops->vdev_op_leaf);
+
+	if (tm == NULL)
+		return;
+
+	timelimit = gethrtime() - trim_timeout * NANOSEC;
+	if (vd->vdev_isl2cache) {
+		txgsafe = UINT64_MAX;
+		txgtarget = UINT64_MAX;
+	} else {
+		txgsafe = MIN(spa_last_synced_txg(spa), spa_freeze_txg(spa));
+		if (txgsafe > trim_txg_delay)
+			txgtarget = txgsafe - trim_txg_delay;
+		else
+			txgtarget = 0;
+	}
+
+	mutex_enter(&tm->tm_lock);
+	/* Loop until we have sent all outstanding free's */
+	while ((ts = trim_map_first(tm, txgtarget, txgsafe, timelimit))
+	    != NULL) {
+		list_remove(&tm->tm_head, ts);
+		avl_remove(&tm->tm_queued_frees, ts);
+		avl_add(&tm->tm_inflight_frees, ts);
+		size = ts->ts_end - ts->ts_start;
+		zio_nowait(zio_trim(zio, spa, vd, ts->ts_start, size));
+		TRIM_MAP_SDEC(tm, size);
+		TRIM_MAP_QDEC(tm);
+	}
+	mutex_exit(&tm->tm_lock);
+}
+
+static void
+trim_map_vdev_commit_done(spa_t *spa, vdev_t *vd)
+{
+	trim_map_t *tm = vd->vdev_trimmap;
+	trim_seg_t *ts;
+	list_t pending_writes;
+	zio_t *zio;
+	uint64_t start, size;
+	void *cookie;
+
+	ASSERT(vd->vdev_ops->vdev_op_leaf);
+
+	if (tm == NULL)
+		return;
+
+	mutex_enter(&tm->tm_lock);
+	if (!avl_is_empty(&tm->tm_inflight_frees)) {
+		cookie = NULL;
+		while ((ts = avl_destroy_nodes(&tm->tm_inflight_frees,
+		    &cookie)) != NULL) {
+			kmem_free(ts, sizeof (*ts));
+		}
+	}
+	list_create(&pending_writes, sizeof (zio_t), offsetof(zio_t,
+	    io_trim_link));
+	list_move_tail(&pending_writes, &tm->tm_pending_writes);
+	mutex_exit(&tm->tm_lock);
+
+	while ((zio = list_remove_head(&pending_writes)) != NULL) {
+		zio_vdev_io_reissue(zio);
+		zio_execute(zio);
+	}
+	list_destroy(&pending_writes);
+}
+
+static void
+trim_map_commit(spa_t *spa, zio_t *zio, vdev_t *vd)
+{
+	int c;
+
+	if (vd == NULL)
+		return;
+
+	if (vd->vdev_ops->vdev_op_leaf) {
+		trim_map_vdev_commit(spa, zio, vd);
+	} else {
+		for (c = 0; c < vd->vdev_children; c++)
+			trim_map_commit(spa, zio, vd->vdev_child[c]);
+	}
+}
+
+static void
+trim_map_commit_done(spa_t *spa, vdev_t *vd)
+{
+	int c;
+
+	if (vd == NULL)
+		return;
+
+	if (vd->vdev_ops->vdev_op_leaf) {
+		trim_map_vdev_commit_done(spa, vd);
+	} else {
+		for (c = 0; c < vd->vdev_children; c++)
+			trim_map_commit_done(spa, vd->vdev_child[c]);
+	}
+}
+
+static void
+trim_thread(void *arg)
+{
+	spa_t *spa = arg;
+	zio_t *zio;
+
+#ifdef _KERNEL
+	(void) snprintf(curthread->td_name, sizeof(curthread->td_name),
+	    "trim %s", spa_name(spa));
+#endif
+
+	for (;;) {
+		mutex_enter(&spa->spa_trim_lock);
+		if (spa->spa_trim_thread == NULL) {
+			spa->spa_trim_thread = curthread;
+			cv_signal(&spa->spa_trim_cv);
+			mutex_exit(&spa->spa_trim_lock);
+			thread_exit();
+		}
+
+		(void) cv_timedwait(&spa->spa_trim_cv, &spa->spa_trim_lock,
+		    hz * trim_max_interval);
+		mutex_exit(&spa->spa_trim_lock);
+
+		zio = zio_root(spa, NULL, NULL, ZIO_FLAG_CANFAIL);
+
+		spa_config_enter(spa, SCL_STATE, FTAG, RW_READER);
+		trim_map_commit(spa, zio, spa->spa_root_vdev);
+		(void) zio_wait(zio);
+		trim_map_commit_done(spa, spa->spa_root_vdev);
+		spa_config_exit(spa, SCL_STATE, FTAG);
+	}
+}
+
+void
+trim_thread_create(spa_t *spa)
+{
+
+	if (!zfs_trim_enabled)
+		return;
+
+	mutex_init(&spa->spa_trim_lock, NULL, MUTEX_DEFAULT, NULL);
+	cv_init(&spa->spa_trim_cv, NULL, CV_DEFAULT, NULL);
+	mutex_enter(&spa->spa_trim_lock);
+	spa->spa_trim_thread = thread_create(NULL, 0, trim_thread, spa, 0, &p0,
+	    TS_RUN, minclsyspri);
+	mutex_exit(&spa->spa_trim_lock);
+}
+
+void
+trim_thread_destroy(spa_t *spa)
+{
+
+	if (!zfs_trim_enabled)
+		return;
+	if (spa->spa_trim_thread == NULL)
+		return;
+
+	mutex_enter(&spa->spa_trim_lock);
+	/* Setting spa_trim_thread to NULL tells the thread to stop. */
+	spa->spa_trim_thread = NULL;
+	cv_signal(&spa->spa_trim_cv);
+	/* The thread will set it back to != NULL on exit. */
+	while (spa->spa_trim_thread == NULL)
+		cv_wait(&spa->spa_trim_cv, &spa->spa_trim_lock);
+	spa->spa_trim_thread = NULL;
+	mutex_exit(&spa->spa_trim_lock);
+
+	cv_destroy(&spa->spa_trim_cv);
+	mutex_destroy(&spa->spa_trim_lock);
+}
+
+void
+trim_thread_wakeup(spa_t *spa)
+{
+
+	if (!zfs_trim_enabled)
+		return;
+	if (spa->spa_trim_thread == NULL)
+		return;
+
+	mutex_enter(&spa->spa_trim_lock);
+	cv_signal(&spa->spa_trim_cv);
+	mutex_exit(&spa->spa_trim_lock);
+}


Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/trim_map.c
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/txg.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/txg.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/txg.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/txg.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/uberblock.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/uberblock.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/uberblock.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/uberblock.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/unique.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/unique.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/unique.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/unique.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Modified: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c	2015-06-21 18:56:23 UTC (rev 7064)
@@ -42,6 +42,7 @@
 #include <sys/arc.h>
 #include <sys/zil.h>
 #include <sys/dsl_scan.h>
+#include <sys/trim_map.h>
 
 SYSCTL_DECL(_vfs_zfs);
 SYSCTL_NODE(_vfs_zfs, OID_AUTO, vdev, CTLFLAG_RW, 0, "ZFS VDEV");
@@ -1195,6 +1196,11 @@
 	if (vd->vdev_ishole || vd->vdev_ops == &vdev_missing_ops)
 		return (0);
 
+	if (vd->vdev_ops->vdev_op_leaf) {
+		vd->vdev_notrim = B_FALSE;
+		trim_map_create(vd);
+	}
+
 	for (int c = 0; c < vd->vdev_children; c++) {
 		if (vd->vdev_child[c]->vdev_state != VDEV_STATE_HEALTHY) {
 			vdev_set_state(vd, B_TRUE, VDEV_STATE_DEGRADED,
@@ -1438,6 +1444,9 @@
 
 	vdev_cache_purge(vd);
 
+	if (vd->vdev_ops->vdev_op_leaf)
+		trim_map_destroy(vd);
+
 	/*
 	 * We record the previous state before we close it, so that if we are
 	 * doing a reopen(), we don't generate FMA ereports if we notice that


Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_cache.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_cache.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_cache.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_cache.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.4
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_disk.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_disk.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_disk.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_disk.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_file.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_file.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_file.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_file.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Modified: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c	2015-06-21 18:56:23 UTC (rev 7064)
@@ -49,14 +49,17 @@
 
 DECLARE_GEOM_CLASS(zfs_vdev_class, zfs_vdev);
 
-/*
- * Don't send BIO_FLUSH.
- */
+SYSCTL_DECL(_vfs_zfs_vdev);
+/* Don't send BIO_FLUSH. */
 static int vdev_geom_bio_flush_disable = 0;
 TUNABLE_INT("vfs.zfs.vdev.bio_flush_disable", &vdev_geom_bio_flush_disable);
-SYSCTL_DECL(_vfs_zfs_vdev);
 SYSCTL_INT(_vfs_zfs_vdev, OID_AUTO, bio_flush_disable, CTLFLAG_RW,
     &vdev_geom_bio_flush_disable, 0, "Disable BIO_FLUSH");
+/* Don't send BIO_DELETE. */
+static int vdev_geom_bio_delete_disable = 0;
+TUNABLE_INT("vfs.zfs.vdev.bio_delete_disable", &vdev_geom_bio_delete_disable);
+SYSCTL_INT(_vfs_zfs_vdev, OID_AUTO, bio_delete_disable, CTLFLAG_RW,
+    &vdev_geom_bio_delete_disable, 0, "Disable BIO_DELETE");
 
 static void
 vdev_geom_orphan(struct g_consumer *cp)
@@ -499,8 +502,8 @@
 	*ashift = highbit(MAX(pp->sectorsize, SPA_MINBLOCKSIZE)) - 1;
 
 	/*
-	 * Clear the nowritecache bit, so that on a vdev_reopen() we will
-	 * try again.
+	 * Clear the nowritecache settings, so that on a vdev_reopen()
+	 * we will try again.
 	 */
 	vd->vdev_nowritecache = B_FALSE;
 
@@ -546,6 +549,15 @@
 		 */
 		vd->vdev_nowritecache = B_TRUE;
 	}
+	if (bp->bio_cmd == BIO_DELETE && bp->bio_error == ENOTSUP) {
+		/*
+		 * If we get ENOTSUP, we know that no future
+		 * attempts will ever succeed.  In this case we
+		 * set a persistent bit so that we don't bother
+		 * with the ioctl in the future.
+		 */
+		vd->vdev_notrim = B_TRUE;
+	}
 	if (zio->io_error == EIO && !vd->vdev_remove_wanted) {
 		/*
 		 * If provider's error is set we assume it is being
@@ -588,18 +600,22 @@
 		}
 
 		switch (zio->io_cmd) {
-
 		case DKIOCFLUSHWRITECACHE:
-
 			if (zfs_nocacheflush || vdev_geom_bio_flush_disable)
 				break;
-
 			if (vd->vdev_nowritecache) {
 				zio->io_error = ENOTSUP;
 				break;
 			}
-
 			goto sendreq;
+		case DKIOCTRIM:
+			if (vdev_geom_bio_delete_disable)
+				break;
+			if (vd->vdev_notrim) {
+				zio->io_error = ENOTSUP;
+				break;
+			}
+			goto sendreq;
 		default:
 			zio->io_error = ENOTSUP;
 		}
@@ -623,11 +639,21 @@
 		bp->bio_length = zio->io_size;
 		break;
 	case ZIO_TYPE_IOCTL:
-		bp->bio_cmd = BIO_FLUSH;
-		bp->bio_flags |= BIO_ORDERED;
-		bp->bio_data = NULL;
-		bp->bio_offset = cp->provider->mediasize;
-		bp->bio_length = 0;
+		switch (zio->io_cmd) {
+		case DKIOCFLUSHWRITECACHE:
+			bp->bio_cmd = BIO_FLUSH;
+			bp->bio_flags |= BIO_ORDERED;
+			bp->bio_data = NULL;
+			bp->bio_offset = cp->provider->mediasize;
+			bp->bio_length = 0;
+			break;
+		case DKIOCTRIM:
+			bp->bio_cmd = BIO_DELETE;
+			bp->bio_data = NULL;
+			bp->bio_offset = zio->io_offset;
+			bp->bio_length = zio->io_size;
+			break;
+		}
 		break;
 	}
 	bp->bio_done = vdev_geom_io_intr;


Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Modified: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_label.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_label.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_label.c	2015-06-21 18:56:23 UTC (rev 7064)
@@ -141,8 +141,14 @@
 #include <sys/metaslab.h>
 #include <sys/zio.h>
 #include <sys/dsl_scan.h>
+#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.
@@ -684,6 +690,16 @@
 	}
 
 	/*
+	 * TRIM the whole thing so that we start with a clean slate.
+	 * It's just an optimization, so we don't care if it fails.
+	 * Don't TRIM if removing so that we don't interfere with zpool
+	 * disaster recovery.
+	 */
+	if (zfs_trim_enabled && 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));
+
+	/*
 	 * Initialize its label.
 	 */
 	vp = zio_buf_alloc(sizeof (vdev_phys_t));
@@ -1212,5 +1228,10 @@
 	 * to disk to ensure that all odd-label updates are committed to
 	 * stable storage before the next transaction group begins.
 	 */
-	return (vdev_label_sync_list(spa, 1, txg, flags));
+	if ((error = vdev_label_sync_list(spa, 1, txg, flags)) != 0)
+		return (error);
+
+	trim_thread_wakeup(spa);
+
+	return (0);
 }


Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_label.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Modified: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_mirror.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_mirror.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_mirror.c	2015-06-21 18:56:23 UTC (rev 7064)
@@ -293,10 +293,11 @@
 		c = vdev_mirror_child_select(zio);
 		children = (c >= 0);
 	} else {
-		ASSERT(zio->io_type == ZIO_TYPE_WRITE);
+		ASSERT(zio->io_type == ZIO_TYPE_WRITE ||
+		    zio->io_type == ZIO_TYPE_FREE);
 
 		/*
-		 * Writes go to all children.
+		 * Writes and frees go to all children.
 		 */
 		c = 0;
 		children = mm->mm_children;
@@ -377,6 +378,8 @@
 				zio->io_error = vdev_mirror_worst_error(mm);
 		}
 		return;
+	} else if (zio->io_type == ZIO_TYPE_FREE) {
+		return;
 	}
 
 	ASSERT(zio->io_type == ZIO_TYPE_READ);


Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_mirror.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_missing.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_missing.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_missing.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_missing.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.4
\ No newline at end of property
Modified: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_raidz.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_raidz.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_raidz.c	2015-06-21 18:56:23 UTC (rev 7064)
@@ -259,7 +259,9 @@
 	size_t size;
 
 	for (c = 0; c < rm->rm_firstdatacol; c++) {
-		zio_buf_free(rm->rm_col[c].rc_data, rm->rm_col[c].rc_size);
+		if (rm->rm_col[c].rc_data != NULL)
+			zio_buf_free(rm->rm_col[c].rc_data,
+			    rm->rm_col[c].rc_size);
 
 		if (rm->rm_col[c].rc_gdata != NULL)
 			zio_buf_free(rm->rm_col[c].rc_gdata,
@@ -504,14 +506,20 @@
 	ASSERT3U(rm->rm_asize - asize, ==, rm->rm_nskip << unit_shift);
 	ASSERT3U(rm->rm_nskip, <=, nparity);
 
-	for (c = 0; c < rm->rm_firstdatacol; c++)
-		rm->rm_col[c].rc_data = zio_buf_alloc(rm->rm_col[c].rc_size);
+	if (zio->io_type != ZIO_TYPE_FREE) {
+		for (c = 0; c < rm->rm_firstdatacol; c++) {
+			rm->rm_col[c].rc_data =
+			    zio_buf_alloc(rm->rm_col[c].rc_size);
+		}
 
-	rm->rm_col[c].rc_data = zio->io_data;
+		rm->rm_col[c].rc_data = zio->io_data;
 
-	for (c = c + 1; c < acols; c++)
-		rm->rm_col[c].rc_data = (char *)rm->rm_col[c - 1].rc_data +
-		    rm->rm_col[c - 1].rc_size;
+		for (c = c + 1; c < acols; c++) {
+			rm->rm_col[c].rc_data =
+			    (char *)rm->rm_col[c - 1].rc_data +
+			    rm->rm_col[c - 1].rc_size;
+		}
+	}
 
 	/*
 	 * If all data stored spans all columns, there's a danger that parity
@@ -1535,6 +1543,18 @@
 
 	ASSERT3U(rm->rm_asize, ==, vdev_psize_to_asize(vd, zio->io_size));
 
+	if (zio->io_type == ZIO_TYPE_FREE) {
+		for (c = 0; c < rm->rm_cols; c++) {
+			rc = &rm->rm_col[c];
+			cvd = vd->vdev_child[rc->rc_devidx];
+			zio_nowait(zio_vdev_child_io(zio, NULL, cvd,
+			    rc->rc_offset, rc->rc_data, rc->rc_size,
+			    zio->io_type, zio->io_priority, 0,
+			    vdev_raidz_child_done, rc));
+		}
+		return (ZIO_PIPELINE_CONTINUE);
+	}
+
 	if (zio->io_type == ZIO_TYPE_WRITE) {
 		vdev_raidz_generate_parity(rm);
 
@@ -1917,6 +1937,8 @@
 			zio->io_error = vdev_raidz_worst_error(rm);
 
 		return;
+	} else if (zio->io_type == ZIO_TYPE_FREE) {
+		return;
 	}
 
 	ASSERT(zio->io_type == ZIO_TYPE_READ);


Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_raidz.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_root.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_root.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_root.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_root.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap_leaf.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap_leaf.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap_leaf.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap_leaf.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap_micro.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap_micro.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap_micro.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap_micro.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_byteswap.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_byteswap.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_byteswap.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_byteswap.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_debug.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_debug.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_debug.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_debug.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1.1.1
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_fm.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_fm.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_fm.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_fm.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_fuid.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_fuid.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_fuid.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_fuid.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1.1.1
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.5
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_log.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_log.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_log.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_log.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_onexit.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_onexit.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_onexit.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_onexit.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1.1.1
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_replay.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_replay.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_replay.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_replay.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.4
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_rlock.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_rlock.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_rlock.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_rlock.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_sa.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_sa.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_sa.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_sa.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1.1.1
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.4
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.4
\ No newline at end of property
Modified: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c	2015-06-21 18:56:23 UTC (rev 7064)
@@ -83,6 +83,11 @@
 TUNABLE_INT("vfs.zfs.cache_flush_disable", &zfs_nocacheflush);
 SYSCTL_INT(_vfs_zfs, OID_AUTO, cache_flush_disable, CTLFLAG_RDTUN,
     &zfs_nocacheflush, 0, "Disable cache flush");
+boolean_t zfs_trim_enabled = B_TRUE;
+SYSCTL_DECL(_vfs_zfs_trim);
+TUNABLE_INT("vfs.zfs.trim.enabled", &zfs_trim_enabled);
+SYSCTL_INT(_vfs_zfs_trim, OID_AUTO, enabled, CTLFLAG_RDTUN, &zfs_trim_enabled, 0,
+    "Enable ZFS TRIM");
 
 static kmem_cache_t *zil_lwb_cache;
 


Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.4
\ No newline at end of property
Modified: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c	2015-06-21 18:56:23 UTC (rev 7064)
@@ -35,6 +35,7 @@
 #include <sys/dmu_objset.h>
 #include <sys/arc.h>
 #include <sys/ddt.h>
+#include <sys/trim_map.h>
 
 SYSCTL_DECL(_vfs_zfs);
 SYSCTL_NODE(_vfs_zfs, OID_AUTO, zio, CTLFLAG_RW, 0, "ZFS ZIO");
@@ -43,6 +44,19 @@
 SYSCTL_INT(_vfs_zfs_zio, OID_AUTO, use_uma, CTLFLAG_RDTUN, &zio_use_uma, 0,
     "Use uma(9) for ZIO allocations");
 
+zio_trim_stats_t zio_trim_stats = {
+	{ "bytes",		KSTAT_DATA_UINT64,
+	  "Number of bytes successfully TRIMmed" },
+	{ "success",		KSTAT_DATA_UINT64,
+	  "Number of successful TRIM requests" },
+	{ "unsupported",	KSTAT_DATA_UINT64,
+	  "Number of TRIM requests that failed because TRIM is not supported" },
+	{ "failed",		KSTAT_DATA_UINT64,
+	  "Number of TRIM requests that failed for reasons other than not supported" },
+};
+
+static kstat_t *zio_trim_ksp;
+
 /*
  * ==========================================================================
  * I/O priority table
@@ -61,6 +75,7 @@
 	10,	/* ZIO_PRIORITY_RESILVER	*/
 	20,	/* ZIO_PRIORITY_SCRUB		*/
 	2,	/* ZIO_PRIORITY_DDT_PREFETCH	*/
+	30,	/* ZIO_PRIORITY_TRIM		*/
 };
 
 /*
@@ -172,6 +187,16 @@
 		zfs_mg_alloc_failures = 8;
 
 	zio_inject_init();
+
+	zio_trim_ksp = kstat_create("zfs", 0, "zio_trim", "misc",
+	    KSTAT_TYPE_NAMED,
+	    sizeof(zio_trim_stats) / sizeof(kstat_named_t),
+	    KSTAT_FLAG_VIRTUAL);
+
+	if (zio_trim_ksp != NULL) {
+		zio_trim_ksp->ks_data = &zio_trim_stats;
+		kstat_install(zio_trim_ksp);
+	}
 }
 
 void
@@ -199,6 +224,11 @@
 	kmem_cache_destroy(zio_cache);
 
 	zio_inject_fini();
+
+	if (zio_trim_ksp != NULL) {
+		kstat_delete(zio_trim_ksp);
+		zio_trim_ksp = NULL;
+	}
 }
 
 /*
@@ -506,7 +536,7 @@
 {
 	zio_t *zio;
 
-	ASSERT3U(size, <=, SPA_MAXBLOCKSIZE);
+	ASSERT3U(type == ZIO_TYPE_FREE || size, <=, SPA_MAXBLOCKSIZE);
 	ASSERT(P2PHASE(size, SPA_MINBLOCKSIZE) == 0);
 	ASSERT(P2PHASE(offset, SPA_MINBLOCKSIZE) == 0);
 
@@ -687,7 +717,7 @@
 
 zio_t *
 zio_free_sync(zio_t *pio, spa_t *spa, uint64_t txg, const blkptr_t *bp,
-    enum zio_flag flags)
+    uint64_t size, enum zio_flag flags)
 {
 	zio_t *zio;
 
@@ -698,7 +728,7 @@
 	ASSERT(spa_syncing_txg(spa) == txg);
 	ASSERT(spa_sync_pass(spa) <= SYNC_PASS_DEFERRED_FREE);
 
-	zio = zio_create(pio, spa, txg, bp, NULL, BP_GET_PSIZE(bp),
+	zio = zio_create(pio, spa, txg, bp, NULL, size,
 	    NULL, NULL, ZIO_TYPE_FREE, ZIO_PRIORITY_FREE, flags,
 	    NULL, 0, NULL, ZIO_STAGE_OPEN, ZIO_FREE_PIPELINE);
 
@@ -735,15 +765,16 @@
 }
 
 zio_t *
-zio_ioctl(zio_t *pio, spa_t *spa, vdev_t *vd, int cmd,
-    zio_done_func_t *done, void *private, int priority, enum zio_flag flags)
+zio_ioctl(zio_t *pio, spa_t *spa, vdev_t *vd, int cmd, uint64_t offset,
+    uint64_t size, zio_done_func_t *done, void *private, int priority,
+    enum zio_flag flags)
 {
 	zio_t *zio;
 	int c;
 
 	if (vd->vdev_children == 0) {
-		zio = zio_create(pio, spa, 0, NULL, NULL, 0, done, private,
-		    ZIO_TYPE_IOCTL, priority, flags, vd, 0, NULL,
+		zio = zio_create(pio, spa, 0, NULL, NULL, size, done, private,
+		    ZIO_TYPE_IOCTL, priority, flags, vd, offset, NULL,
 		    ZIO_STAGE_OPEN, ZIO_IOCTL_PIPELINE);
 
 		zio->io_cmd = cmd;
@@ -752,7 +783,7 @@
 
 		for (c = 0; c < vd->vdev_children; c++)
 			zio_nowait(zio_ioctl(zio, spa, vd->vdev_child[c], cmd,
-			    done, private, priority, flags));
+			    offset, size, done, private, priority, flags));
 	}
 
 	return (zio);
@@ -877,11 +908,22 @@
 void
 zio_flush(zio_t *zio, vdev_t *vd)
 {
-	zio_nowait(zio_ioctl(zio, zio->io_spa, vd, DKIOCFLUSHWRITECACHE,
+	zio_nowait(zio_ioctl(zio, zio->io_spa, vd, DKIOCFLUSHWRITECACHE, 0, 0,
 	    NULL, NULL, ZIO_PRIORITY_NOW,
 	    ZIO_FLAG_CANFAIL | ZIO_FLAG_DONT_PROPAGATE | ZIO_FLAG_DONT_RETRY));
 }
 
+zio_t *
+zio_trim(zio_t *zio, spa_t *spa, vdev_t *vd, uint64_t offset, uint64_t size)
+{
+
+	ASSERT(vd->vdev_ops->vdev_op_leaf);
+
+	return zio_ioctl(zio, spa, vd, DKIOCTRIM, offset, size,
+	    NULL, NULL, ZIO_PRIORITY_TRIM,
+	    ZIO_FLAG_CANFAIL | ZIO_FLAG_DONT_PROPAGATE | ZIO_FLAG_DONT_RETRY);
+}
+
 void
 zio_shrink(zio_t *zio, uint64_t size)
 {
@@ -1485,6 +1527,7 @@
 zio_free_gang(zio_t *pio, blkptr_t *bp, zio_gang_node_t *gn, void *data)
 {
 	return (zio_free_sync(pio, pio->io_spa, pio->io_txg, bp,
+	    BP_IS_GANG(bp) ? SPA_GANGBLOCKSIZE : BP_GET_PSIZE(bp),
 	    ZIO_GANG_CHILD_FLAGS(pio)));
 }
 
@@ -1617,7 +1660,7 @@
 		}
 	}
 
-	if (gn == gio->io_gang_tree)
+	if (gn == gio->io_gang_tree && gio->io_data != NULL)
 		ASSERT3P((char *)gio->io_data + gio->io_size, ==, data);
 
 	if (zio != pio)
@@ -2282,7 +2325,7 @@
 
 /*
  * ==========================================================================
- * Read and write to physical devices
+ * Read, write and delete to physical devices
  * ==========================================================================
  */
 static int
@@ -2305,6 +2348,11 @@
 		return (vdev_mirror_ops.vdev_op_io_start(zio));
 	}
 
+	if (vd->vdev_ops->vdev_op_leaf && zio->io_type == ZIO_TYPE_FREE) {
+		trim_map_free(vd, zio->io_offset, zio->io_size, zio->io_txg);
+		return (ZIO_PIPELINE_CONTINUE);
+	}
+
 	/*
 	 * We keep track of time-sensitive I/Os so that the scan thread
 	 * can quickly react to certain workloads.  In particular, we care
@@ -2329,18 +2377,22 @@
 
 	if (P2PHASE(zio->io_size, align) != 0) {
 		uint64_t asize = P2ROUNDUP(zio->io_size, align);
-		char *abuf = zio_buf_alloc(asize);
+		char *abuf = NULL;
+		if (zio->io_type == ZIO_TYPE_READ ||
+		    zio->io_type == ZIO_TYPE_WRITE)
+			abuf = zio_buf_alloc(asize);
 		ASSERT(vd == vd->vdev_top);
 		if (zio->io_type == ZIO_TYPE_WRITE) {
 			bcopy(zio->io_data, abuf, zio->io_size);
 			bzero(abuf + zio->io_size, asize - zio->io_size);
 		}
-		zio_push_transform(zio, abuf, asize, asize, zio_subblock);
+		zio_push_transform(zio, abuf, asize, abuf ? asize : 0,
+		    zio_subblock);
 	}
 
 	ASSERT(P2PHASE(zio->io_offset, align) == 0);
 	ASSERT(P2PHASE(zio->io_size, align) == 0);
-	VERIFY(zio->io_type != ZIO_TYPE_WRITE || spa_writeable(spa));
+	VERIFY(zio->io_type == ZIO_TYPE_READ || spa_writeable(spa));
 
 	/*
 	 * If this is a repair I/O, and there's no self-healing involved --
@@ -2380,6 +2432,11 @@
 		}
 	}
 
+	if (vd->vdev_ops->vdev_op_leaf && zio->io_type == ZIO_TYPE_WRITE) {
+		if (!trim_map_write_start(zio))
+			return (ZIO_PIPELINE_STOP);
+	}
+
 	return (vd->vdev_ops->vdev_op_io_start(zio));
 }
 
@@ -2393,10 +2450,17 @@
 	if (zio_wait_for_children(zio, ZIO_CHILD_VDEV, ZIO_WAIT_DONE))
 		return (ZIO_PIPELINE_STOP);
 
-	ASSERT(zio->io_type == ZIO_TYPE_READ || zio->io_type == ZIO_TYPE_WRITE);
+	ASSERT(zio->io_type == ZIO_TYPE_READ ||
+	    zio->io_type == ZIO_TYPE_WRITE || zio->io_type == ZIO_TYPE_FREE);
 
-	if (vd != NULL && vd->vdev_ops->vdev_op_leaf) {
+	if (vd != NULL && vd->vdev_ops->vdev_op_leaf &&
+	    zio->io_type == ZIO_TYPE_WRITE) {
+		trim_map_write_done(zio);
+	}
 
+	if (vd != NULL && vd->vdev_ops->vdev_op_leaf &&
+	    (zio->io_type == ZIO_TYPE_READ || zio->io_type == ZIO_TYPE_WRITE)) {
+
 		vdev_queue_io_done(zio);
 
 		if (zio->io_type == ZIO_TYPE_WRITE)
@@ -2471,6 +2535,20 @@
 	if (zio_injection_enabled && zio->io_error == 0)
 		zio->io_error = zio_handle_fault_injection(zio, EIO);
 
+	if (zio->io_type == ZIO_TYPE_IOCTL && zio->io_cmd == DKIOCTRIM)
+		switch (zio->io_error) {
+		case 0:
+			ZIO_TRIM_STAT_INCR(bytes, zio->io_size);
+			ZIO_TRIM_STAT_BUMP(success);
+			break;
+		case EOPNOTSUPP:
+			ZIO_TRIM_STAT_BUMP(unsupported);
+			break;
+		default:
+			ZIO_TRIM_STAT_BUMP(failed);
+			break;
+		}
+
 	/*
 	 * If the I/O failed, determine whether we should attempt to retry it.
 	 *


Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.4
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio_checksum.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio_checksum.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio_checksum.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio_checksum.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio_compress.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio_compress.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio_compress.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio_compress.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio_inject.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio_inject.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio_inject.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio_inject.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zle.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zle.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zle.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zle.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1.1.1
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zrlock.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zrlock.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zrlock.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zrlock.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1.1.1
\ No newline at end of property
Index: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c
===================================================================
--- stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c	2015-06-21 18:56:23 UTC (rev 7064)

Property changes on: stable/0.6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.3
\ No newline at end of property
Modified: stable/0.6/sys/conf/newvers.sh
===================================================================
--- stable/0.6/sys/conf/newvers.sh	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/conf/newvers.sh	2015-06-21 18:56:23 UTC (rev 7064)
@@ -32,7 +32,7 @@
 # $MidnightBSD$
 
 TYPE="MidnightBSD"
-REVISION="0.6.1"
+REVISION="0.6.2"
 RELEASE="${REVISION}"
 VERSION="${TYPE} ${RELEASE}"
 SYSDIR=$(dirname $0)/..

Modified: stable/0.6/sys/modules/zfs/Makefile
===================================================================
--- stable/0.6/sys/modules/zfs/Makefile	2015-06-21 18:48:44 UTC (rev 7063)
+++ stable/0.6/sys/modules/zfs/Makefile	2015-06-21 18:56:23 UTC (rev 7064)
@@ -1,4 +1,4 @@
-# $MidnightBSD: src/sys/modules/zfs/Makefile,v 1.6 2012/04/10 19:39:40 laffer1 Exp $
+# $MidnightBSD$
 # $FreeBSD: src/sys/modules/zfs/Makefile,v 1.6.2.3.2.1 2008/11/25 02:59:29 kensmith Exp $
 
 KMOD=	zfs
@@ -72,6 +72,7 @@
 ZFS_SRCS=	${ZFS_OBJS:C/.o$/.c/}
 SRCS+=	${ZFS_SRCS}
 SRCS+=	vdev_geom.c
+SRCS+=	trim_map.c
 
 # Use FreeBSD's namecache.
 CFLAGS+=-DFREEBSD_NAMECACHE


Property changes on: stable/0.6/sys/modules/zfs/Makefile
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.7
\ No newline at end of property


More information about the Midnightbsd-cvs mailing list