head	1.34;
access;
symbols
	RELENG_8_4:1.34.0.2
	RELENG_9_1_0_RELEASE:1.29.2.1.4.3
	RELENG_9_1:1.29.2.1.0.4
	RELENG_9_1_BP:1.29.2.1
	RELENG_8_3_0_RELEASE:1.19.2.7.2.1
	RELENG_8_3:1.19.2.7.0.2
	RELENG_8_3_BP:1.19.2.7
	RELENG_9_0_0_RELEASE:1.29.2.1.2.1
	RELENG_9_0:1.29.2.1.0.2
	RELENG_9_0_BP:1.29.2.1
	RELENG_9:1.29.0.2
	RELENG_9_BP:1.29
	RELENG_7_4_0_RELEASE:1.6.2.5.4.1
	RELENG_8_2_0_RELEASE:1.19.2.6.2.1
	RELENG_7_4:1.6.2.5.0.4
	RELENG_7_4_BP:1.6.2.5
	RELENG_8_2:1.19.2.6.0.2
	RELENG_8_2_BP:1.19.2.6
	RELENG_8_1_0_RELEASE:1.19.2.4.2.1
	RELENG_8_1:1.19.2.4.0.2
	RELENG_8_1_BP:1.19.2.4
	RELENG_7_3_0_RELEASE:1.6.2.5.2.1
	RELENG_7_3:1.6.2.5.0.2
	RELENG_7_3_BP:1.6.2.5
	RELENG_8_0_0_RELEASE:1.19.2.2.2.1
	RELENG_8_0:1.19.2.2.0.2
	RELENG_8_0_BP:1.19.2.2
	RELENG_8:1.19.0.2
	RELENG_8_BP:1.19
	RELENG_7_2_0_RELEASE:1.6.2.3.4.1
	RELENG_7_2:1.6.2.3.0.4
	RELENG_7_2_BP:1.6.2.3
	RELENG_7_1_0_RELEASE:1.6.2.3.2.1
	RELENG_7_1:1.6.2.3.0.2
	RELENG_7_1_BP:1.6.2.3
	RELENG_7_0_0_RELEASE:1.6
	RELENG_7_0:1.6.0.4
	RELENG_7_0_BP:1.6
	RELENG_7:1.6.0.2
	RELENG_7_BP:1.6;
locks; strict;
comment	@# @;


1.34
date	2013.03.09.07.27.48;	author svnexp;	state Exp;
branches
	1.34.2.1;
next	1.33;

1.33
date	2012.11.17.01.53.02;	author svnexp;	state Exp;
branches;
next	1.32;

1.32
date	2012.09.23.19.40.58;	author pjd;	state Exp;
branches;
next	1.31;

1.31
date	2012.06.11.11.35.22;	author mm;	state Exp;
branches;
next	1.30;

1.30
date	2011.10.25.16.22.43;	author pjd;	state Exp;
branches;
next	1.29;

1.29
date	2011.03.01.20.51.41;	author nwhitehorn;	state Exp;
branches
	1.29.2.1;
next	1.28;

1.28
date	2011.02.27.19.41.40;	author pjd;	state Exp;
branches;
next	1.27;

1.27
date	2010.09.13.07.29.02;	author imp;	state Exp;
branches;
next	1.26;

1.26
date	2010.07.17.13.34.01;	author nwhitehorn;	state Exp;
branches;
next	1.25;

1.25
date	2010.07.12.23.49.04;	author mm;	state Exp;
branches;
next	1.24;

1.24
date	2010.06.03.09.29.54;	author pjd;	state Exp;
branches;
next	1.23;

1.23
date	2010.05.23.18.43.06;	author pjd;	state Exp;
branches;
next	1.22;

1.22
date	2010.05.11.15.32.21;	author pjd;	state Exp;
branches;
next	1.21;

1.21
date	2010.03.13.21.53.48;	author kmacy;	state Exp;
branches;
next	1.20;

1.20
date	2009.08.17.09.01.20;	author pjd;	state Exp;
branches;
next	1.19;

1.19
date	2009.05.30.22.23.58;	author kmacy;	state Exp;
branches
	1.19.2.1;
next	1.18;

1.18
date	2009.05.28.08.18.12;	author kmacy;	state Exp;
branches;
next	1.17;

1.17
date	2009.05.26.08.21.59;	author trasz;	state Exp;
branches;
next	1.16;

1.16
date	2009.05.11.04.18.58;	author kmacy;	state Exp;
branches;
next	1.15;

1.15
date	2009.05.09.05.45.13;	author kmacy;	state Exp;
branches;
next	1.14;

1.14
date	2009.05.09.01.45.55;	author kmacy;	state Exp;
branches;
next	1.13;

1.13
date	2008.11.17.20.49.29;	author pjd;	state Exp;
branches;
next	1.12;

1.12
date	2008.11.05.19.40.36;	author rodrigc;	state Exp;
branches;
next	1.11;

1.11
date	2008.04.11.22.59.33;	author marius;	state Exp;
branches;
next	1.10;

1.10
date	2008.03.27.23.21.25;	author jb;	state Exp;
branches;
next	1.9;

1.9
date	2008.03.08.19.14.43;	author obrien;	state Exp;
branches;
next	1.8;

1.8
date	2008.02.21.11.11.06;	author ru;	state Exp;
branches;
next	1.7;

1.7
date	2007.11.28.22.58.09;	author jb;	state Exp;
branches;
next	1.6;

1.6
date	2007.06.08.12.35.47;	author pjd;	state Exp;
branches
	1.6.2.1;
next	1.5;

1.5
date	2007.05.23.21.33.01;	author pjd;	state Exp;
branches;
next	1.4;

1.4
date	2007.04.24.16.59.19;	author pjd;	state Exp;
branches;
next	1.3;

1.3
date	2007.04.08.16.29.25;	author pjd;	state Exp;
branches;
next	1.2;

1.2
date	2007.04.07.23.54.53;	author pjd;	state Exp;
branches;
next	1.1;

1.1
date	2007.04.06.01.35.16;	author pjd;	state Exp;
branches;
next	;

1.34.2.1
date	2013.03.09.07.27.48;	author svnexp;	state dead;
branches;
next	1.34.2.2;

1.34.2.2
date	2013.03.28.13.05.25;	author svnexp;	state Exp;
branches;
next	;

1.29.2.1
date	2011.09.23.00.51.37;	author kensmith;	state Exp;
branches
	1.29.2.1.2.1
	1.29.2.1.4.1;
next	1.29.2.2;

1.29.2.2
date	2012.09.11.10.07.55;	author pjd;	state Exp;
branches;
next	1.29.2.3;

1.29.2.3
date	2012.11.17.11.37.19;	author svnexp;	state Exp;
branches;
next	1.29.2.4;

1.29.2.4
date	2012.11.29.14.07.18;	author svnexp;	state Exp;
branches;
next	1.29.2.5;

1.29.2.5
date	2013.06.05.14.01.45;	author svnexp;	state Exp;
branches;
next	1.29.2.6;

1.29.2.6
date	2013.08.23.15.01.44;	author svnexp;	state Exp;
branches;
next	1.29.2.7;

1.29.2.7
date	2014.02.17.15.01.43;	author svnexp;	state Exp;
branches;
next	;

1.29.2.1.2.1
date	2011.11.11.04.20.22;	author kensmith;	state Exp;
branches;
next	1.29.2.1.2.2;

1.29.2.1.2.2
date	2012.11.17.08.37.15;	author svnexp;	state Exp;
branches;
next	;

1.29.2.1.4.1
date	2012.08.05.23.54.33;	author kensmith;	state Exp;
branches;
next	1.29.2.1.4.2;

1.29.2.1.4.2
date	2012.09.11.13.58.03;	author pjd;	state Exp;
branches;
next	1.29.2.1.4.3;

1.29.2.1.4.3
date	2012.11.17.08.48.06;	author svnexp;	state Exp;
branches;
next	;

1.19.2.1
date	2009.08.03.08.13.06;	author kensmith;	state Exp;
branches;
next	1.19.2.2;

1.19.2.2
date	2009.08.17.09.03.47;	author pjd;	state Exp;
branches
	1.19.2.2.2.1;
next	1.19.2.3;

1.19.2.3
date	2010.04.18.21.36.34;	author pjd;	state Exp;
branches;
next	1.19.2.4;

1.19.2.4
date	2010.05.24.10.09.36;	author pjd;	state Exp;
branches
	1.19.2.4.2.1;
next	1.19.2.5;

1.19.2.5
date	2010.06.18.06.24.40;	author pjd;	state Exp;
branches;
next	1.19.2.6;

1.19.2.6
date	2010.09.15.16.05.40;	author mm;	state Exp;
branches
	1.19.2.6.2.1;
next	1.19.2.7;

1.19.2.7
date	2011.06.06.09.36.46;	author mm;	state Exp;
branches
	1.19.2.7.2.1;
next	1.19.2.8;

1.19.2.8
date	2012.11.17.10.36.59;	author svnexp;	state Exp;
branches;
next	1.19.2.9;

1.19.2.9
date	2012.11.30.22.42.19;	author svnexp;	state Exp;
branches;
next	1.19.2.10;

1.19.2.10
date	2013.06.24.16.22.13;	author svnexp;	state Exp;
branches;
next	1.19.2.11;

1.19.2.11
date	2013.08.23.14.24.40;	author svnexp;	state Exp;
branches;
next	;

1.19.2.2.2.1
date	2009.10.25.01.10.29;	author kensmith;	state Exp;
branches;
next	;

1.19.2.4.2.1
date	2010.06.14.02.09.06;	author kensmith;	state Exp;
branches;
next	;

1.19.2.6.2.1
date	2010.12.21.17.09.25;	author kensmith;	state Exp;
branches;
next	;

1.19.2.7.2.1
date	2012.03.03.06.15.13;	author kensmith;	state Exp;
branches;
next	1.19.2.7.2.2;

1.19.2.7.2.2
date	2012.11.17.08.25.34;	author svnexp;	state Exp;
branches;
next	;

1.6.2.1
date	2008.04.17.04.59.18;	author jb;	state Exp;
branches;
next	1.6.2.2;

1.6.2.2
date	2008.04.25.11.02.01;	author marius;	state Exp;
branches;
next	1.6.2.3;

1.6.2.3
date	2008.08.27.04.41.15;	author jb;	state Exp;
branches
	1.6.2.3.2.1
	1.6.2.3.4.1;
next	1.6.2.4;

1.6.2.4
date	2009.05.20.23.34.59;	author kmacy;	state Exp;
branches;
next	1.6.2.5;

1.6.2.5
date	2010.01.06.08.18.49;	author netchild;	state Exp;
branches
	1.6.2.5.2.1
	1.6.2.5.4.1;
next	1.6.2.6;

1.6.2.6
date	2012.11.17.08.07.00;	author svnexp;	state Exp;
branches;
next	;

1.6.2.3.2.1
date	2008.11.25.02.59.29;	author kensmith;	state Exp;
branches;
next	;

1.6.2.3.4.1
date	2009.04.15.03.14.26;	author kensmith;	state Exp;
branches;
next	;

1.6.2.5.2.1
date	2010.02.10.00.26.20;	author kensmith;	state Exp;
branches;
next	;

1.6.2.5.4.1
date	2010.12.21.17.10.29;	author kensmith;	state Exp;
branches;
next	1.6.2.5.4.2;

1.6.2.5.4.2
date	2012.11.17.08.17.28;	author svnexp;	state Exp;
branches;
next	;


desc
@@


1.34
log
@## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/248084
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
@
text
@# $FreeBSD: head/sys/modules/zfs/Makefile 248084 2013-03-09 02:32:23Z attilio $

KMOD=	zfs

SRCS=	bus_if.h device_if.h vnode_if.h

SUNW=	${.CURDIR}/../../cddl/contrib/opensolaris

.PATH:	${SUNW}/common/acl
SRCS+=	acl_common.c
.PATH:	${SUNW}/common/avl
SRCS+=	avl.c
.PATH:	${SUNW}/common/nvpair
SRCS+=	nvpair.c
SRCS+=	nvpair_alloc_fixed.c
SRCS+=	fnvpair.c
.PATH:	${.CURDIR}/../../cddl/contrib/opensolaris/common/unicode
SRCS+=	u8_textprep.c

.PATH:	${.CURDIR}/../../cddl/compat/opensolaris/kern
SRCS+=	opensolaris_acl.c
SRCS+=	opensolaris_kobj.c
SRCS+=	opensolaris_kstat.c
SRCS+=	opensolaris_lookup.c
SRCS+=	opensolaris_policy.c
SRCS+=	opensolaris_string.c
SRCS+=	opensolaris_sysevent.c
SRCS+=	opensolaris_taskq.c
SRCS+=	opensolaris_uio.c
SRCS+=	opensolaris_vfs.c
SRCS+=	opensolaris_vm.c
SRCS+=	opensolaris_zone.c

_A=${.CURDIR}/../../cddl/contrib/opensolaris/common/atomic
.if exists(${_A}/${MACHINE_CPUARCH}/opensolaris_atomic.S)
.PATH:	${_A}/${MACHINE_CPUARCH}
SRCS+=		opensolaris_atomic.S
.elif exists(${_A}/${MACHINE_ARCH}/opensolaris_atomic.S)
.PATH:	${_A}/${MACHINE_ARCH}
SRCS+=		opensolaris_atomic.S
.else
SRCS+=		opensolaris_atomic.c
.endif

.PATH:	${SUNW}/uts/common/fs
SRCS+=	gfs.c
SRCS+=	vnode.c

.PATH:	${SUNW}/uts/common/os
SRCS+=	callb.c
SRCS+=	fm.c
SRCS+=	list.c
SRCS+=	nvpair_alloc_system.c

.PATH:	${SUNW}/uts/common/zmod
SRCS+=	adler32.c
SRCS+=	opensolaris_crc32.c
SRCS+=	deflate.c
SRCS+=	inffast.c
SRCS+=	inflate.c
SRCS+=	inftrees.c
SRCS+=	trees.c
SRCS+=	zmod.c
SRCS+=	zmod_subr.c
SRCS+=	zutil.c

.PATH:	${.CURDIR}/../../crypto/sha2
SRCS+=	sha2.c

.PATH:	${SUNW}/common/zfs
.include "${SUNW}/uts/common/Makefile.files"
.PATH:	${SUNW}/uts/common/fs/zfs
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

CFLAGS+=-I${.CURDIR}/../../cddl/compat/opensolaris
CFLAGS+=-I${SUNW}/uts/common/fs/zfs
CFLAGS+=-I${SUNW}/uts/common/zmod
CFLAGS+=-I${SUNW}/uts/common
CFLAGS+=-I${.CURDIR}/../..
CFLAGS+=-I${SUNW}/common/zfs
CFLAGS+=-I${SUNW}/common
CFLAGS+=-DBUILDING_ZFS

.if ${MACHINE_ARCH} == "powerpc64"
CFLAGS+=-mminimal-toc
.endif

#CFLAGS+=-DDEBUG=1
#DEBUG_FLAGS=-g

.include <bsd.kmod.mk>

CWARNFLAGS+=-Wno-unknown-pragmas
CWARNFLAGS+=-Wno-missing-prototypes
CWARNFLAGS+=-Wno-undef
CWARNFLAGS+=-Wno-strict-prototypes
CWARNFLAGS+=-Wno-cast-qual
CWARNFLAGS+=-Wno-parentheses
CWARNFLAGS+=-Wno-redundant-decls
CWARNFLAGS+=-Wno-missing-braces
CWARNFLAGS+=-Wno-uninitialized
CWARNFLAGS+=-Wno-unused
CWARNFLAGS+=-Wno-inline
CWARNFLAGS+=-Wno-switch
CWARNFLAGS+=-Wno-pointer-arith
@


1.34.2.1
log
@file Makefile was added on branch RELENG_8_4 on 2013-03-28 13:05:25 +0000
@
text
@d1 111
@


1.34.2.2
log
@## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/248810
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
@
text
@a0 103
# $FreeBSD: releng/8.4/sys/modules/zfs/Makefile 243717 2012-11-30 22:38:42Z mm $

KMOD=	zfs

SRCS=	bus_if.h device_if.h vnode_if.h

SUNW=	${.CURDIR}/../../cddl/contrib/opensolaris

.PATH:	${SUNW}/common/acl
SRCS+=	acl_common.c
.PATH:	${SUNW}/common/avl
SRCS+=	avl.c
.PATH:	${SUNW}/common/nvpair
SRCS+=	nvpair.c
SRCS+=	nvpair_alloc_fixed.c
SRCS+=	fnvpair.c
.PATH:	${.CURDIR}/../../cddl/contrib/opensolaris/common/unicode
SRCS+=	u8_textprep.c

.PATH:	${.CURDIR}/../../cddl/compat/opensolaris/kern
SRCS+=	opensolaris_acl.c
SRCS+=	opensolaris_kobj.c
SRCS+=	opensolaris_kstat.c
SRCS+=	opensolaris_lookup.c
SRCS+=	opensolaris_policy.c
SRCS+=	opensolaris_string.c
SRCS+=	opensolaris_sysevent.c
SRCS+=	opensolaris_taskq.c
SRCS+=	opensolaris_uio.c
SRCS+=	opensolaris_vfs.c
SRCS+=	opensolaris_zone.c

_A=${.CURDIR}/../../cddl/contrib/opensolaris/common/atomic
.if exists(${_A}/${MACHINE_ARCH}/opensolaris_atomic.S)
.PATH:	${_A}/${MACHINE_ARCH}
SRCS+=		opensolaris_atomic.S
.else
SRCS+=		opensolaris_atomic.c
.endif

.PATH:	${SUNW}/uts/common/fs
SRCS+=	gfs.c
SRCS+=	vnode.c

.PATH:	${SUNW}/uts/common/os
SRCS+=	callb.c
SRCS+=	fm.c
SRCS+=	list.c
SRCS+=	nvpair_alloc_system.c

.PATH:	${SUNW}/uts/common/zmod
SRCS+=	adler32.c
SRCS+=	opensolaris_crc32.c
SRCS+=	deflate.c
SRCS+=	inffast.c
SRCS+=	inflate.c
SRCS+=	inftrees.c
SRCS+=	trees.c
SRCS+=	zmod.c
SRCS+=	zmod_subr.c
SRCS+=	zutil.c

.PATH:	${.CURDIR}/../../crypto/sha2
SRCS+=	sha2.c

.PATH:	${SUNW}/common/zfs
.include "${SUNW}/uts/common/Makefile.files"
.PATH:	${SUNW}/uts/common/fs/zfs
ZFS_SRCS=	${ZFS_OBJS:C/.o$/.c/}
SRCS+=	${ZFS_SRCS}
SRCS+=	vdev_geom.c

# Use FreeBSD's namecache.
CFLAGS+=-DFREEBSD_NAMECACHE

CFLAGS+=-I${.CURDIR}/../../cddl/compat/opensolaris
CFLAGS+=-I${SUNW}/uts/common/fs/zfs
CFLAGS+=-I${SUNW}/uts/common/zmod
CFLAGS+=-I${SUNW}/uts/common
CFLAGS+=-I${.CURDIR}/../..
CFLAGS+=-I${SUNW}/common/zfs
CFLAGS+=-I${SUNW}/common
CFLAGS+=-I${.CURDIR}/../../../include
CFLAGS+=-DBUILDING_ZFS

#CFLAGS+=-DDEBUG=1
#DEBUG_FLAGS=-g

.include <bsd.kmod.mk>

CWARNFLAGS+=-Wno-unknown-pragmas
CWARNFLAGS+=-Wno-missing-prototypes
CWARNFLAGS+=-Wno-undef
CWARNFLAGS+=-Wno-strict-prototypes
CWARNFLAGS+=-Wno-cast-qual
CWARNFLAGS+=-Wno-parentheses
CWARNFLAGS+=-Wno-redundant-decls
CWARNFLAGS+=-Wno-missing-braces
CWARNFLAGS+=-Wno-uninitialized
CWARNFLAGS+=-Wno-unused
CWARNFLAGS+=-Wno-inline
CWARNFLAGS+=-Wno-switch
CWARNFLAGS+=-Wno-pointer-arith
@


1.33
log
@Switching exporter and resync
@
text
@d1 1
a1 1
# $FreeBSD: head/sys/modules/zfs/Makefile 240868 2012-09-23 19:40:58Z pjd $
d31 1
@


1.32
log
@SVN rev 240868 on 2012-09-23 19:40:58Z by pjd

Add TRIM support.

The code builds a map of regions that were freed. On every write the
code consults the map and eventually removes ranges that were freed
before, but are now overwritten.

Freed blocks are not TRIMed immediately. There is a tunable that defines
how many txg we should wait with TRIMming freed blocks (64 by default).

There is a low priority thread that TRIMs ranges when the time comes.
During TRIM we keep in-flight ranges on a list to detect colliding
writes - we have to delay writes that collide with in-flight TRIMs in
case something will be reordered and write will reached the disk before
the TRIM. We don't have to do the same for in-flight writes, as
colliding writes just remove ranges to TRIM.

Sponsored by:	multiplay.co.uk

This work includes some important fixes and some improvements obtained
from the zfsonlinux project, including TRIMming entire vdevs on pool
create/add/attach and on pool import for spare and cache vdevs.

Obtained from:	zfsonlinux
Submitted by:	Etienne Dechamps <etienne.dechamps@@ovh.net>
@
text
@d1 1
a1 1
# $FreeBSD$
@


1.31
log
@SVN rev 236884 on 2012-06-11 11:35:22Z by mm

Introduce "feature flags" for ZFS pools (bump SPA version to 5000).
Add first feature "com.delphix:async_destroy" (asynchronous destroy
of ZFS datasets).
Implement features support in ZFS boot code.

Illumos revisions merged:
13700:2889e2596bd6
13701:1949b688d5fb
2619 asynchronous destruction of ZFS file systems
2747 SPA versioning with zfs feature flags

References:
https://www.illumos.org/issues/2619
https://www.illumos.org/issues/2747

Obtained from:	illumos (issue #2619, #2747)
MFC after:	1 month
@
text
@d75 1
@


1.30
log
@SVN rev 226738 on 2011-10-25 16:22:43Z by pjd

Don't look for includes in userland directories. There is no need for it
and it breaks building the kernel without userland sources.

Reported by:	andre, imp
MFC after:	3 days
@
text
@d16 1
@


1.29
log
@SVN rev 219146 on 2011-03-01 20:51:41Z by nwhitehorn

Fix misuse of TARGET_ARCH. This should be MACHINE_ARCH.
@
text
@a84 1
CFLAGS+=-I${.CURDIR}/../../../include
@


1.29.2.1
log
@SVN rev 225736 on 2011-09-23 00:51:37Z by kensmith

Copy head to stable/9 as part of 9.0-RELEASE release cycle.

Approved by:	re (implicit)
@
text
@@


1.29.2.1.4.1
log
@SVN rev 239080 on 2012-08-05 23:54:33Z by kensmith

Copy stable/9 to releng/9.1 as part of the 9.1-RELEASE release process.

Approved by:	re (implicit)
@
text
@@


1.29.2.1.4.2
log
@SVN rev 240363 on 2012-09-11 13:58:03Z by pjd

MFC r226738:

Don't look for includes in userland directories. There is no need for it
and it breaks building the kernel without userland sources.

Reported by:	andre, imp
Approved by:	re (kib)
@
text
@d85 1
@


1.29.2.1.4.3
log
@Switch importer
@
text
@d1 1
a1 1
# $FreeBSD: releng/9.1/sys/modules/zfs/Makefile 240363 2012-09-11 13:58:03Z pjd $
@


1.29.2.2
log
@SVN rev 240359 on 2012-09-11 10:07:55Z by pjd

MFC r226738:

Don't look for includes in userland directories. There is no need for it
and it breaks building the kernel without userland sources.

Reported by:	andre, imp
@
text
@d85 1
@


1.29.2.3
log
@## SVN ##
## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/ 242902
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ## r242902 | dteske | 2012-11-11 23:29:45 +0000 (Sun, 11 Nov 2012) | 10 lines
## SVN ##
## SVN ## Fix a regression introduced by SVN r211417 that saw the breakage of a feature
## SVN ## documented in usr.sbin/sysinstall/help/shortcuts.hlp (reproduced below):
## SVN ##
## SVN ## If /usr/sbin/sysinstall is linked to another filename, say
## SVN ## `/usr/local/bin/configPackages', then the basename will be used
## SVN ## as an implicit command name.
## SVN ##
## SVN ## Reviewed by:	adrian (co-mentor)
## SVN ## Approved by:	adrian (co-mentor)
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ##
@
text
@d1 1
a1 1
# $FreeBSD: stable/9/sys/modules/zfs/Makefile 240359 2012-09-11 10:07:55Z pjd $
@


1.29.2.4
log
@## SVN ##
## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/243674
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ## r243674 | mm | 2012-11-29 14:05:04 +0000 (Thu, 29 Nov 2012) | 223 lines
## SVN ##
## SVN ## Merge ZFS feature flags support and related bugfixes:
## SVN ## 236884, 237001, 237119, 237458, 237972, 238113, 238391, 238422, 238926,
## SVN ## 238950, 238951, 239389, 239394, 239620, 239774, 239953, 239958, 239967,
## SVN ## 239968, 240063, 240133, 240153, 240303, 240345, 240415, 240955, 241655,
## SVN ## 243014, 243505, 243506
## SVN ##
## SVN ## MFC r236884:
## SVN ## Introduce "feature flags" for ZFS pools (bump SPA version to 5000).
## SVN ## Add first feature "com.delphix:async_destroy" (asynchronous destroy
## SVN ## of ZFS datasets).
## SVN ## Implement features support in ZFS boot code.
## SVN ##
## SVN ## Illumos revisions merged:
## SVN ## 13700:2889e2596bd6
## SVN ## 13701:1949b688d5fb
## SVN ## 2619 asynchronous destruction of ZFS file systems
## SVN ## 2747 SPA versioning with zfs feature flags
## SVN ##
## SVN ## References:
## SVN ##   https://www.illumos.org/issues/2619
## SVN ##   https://www.illumos.org/issues/2747
## SVN ##
## SVN ## MFC r237001:
## SVN ## Fix ZFS boot with pre-features pools (version <= 28) broken in r236884
## SVN ##
## SVN ## MFC r237119 [1]:
## SVN ## Do not remount ZFS dataset if changing canmount property to "on" and
## SVN ## dataset is already mounted.
## SVN ##
## SVN ## MFC r237458:
## SVN ## Import Illumos revision 13736:9f1d48e1681f
## SVN ## 2901 ZFS receive fails for exabyte sparse files
## SVN ##
## SVN ## References:
## SVN ##   https://www.illumos.org/issues/2901
## SVN ##
## SVN ## MFC r237972:
## SVN ## Expose scrub and resilver tunables.
## SVN ## This allows the user to tune the priority trade-off between scrub/resilver
## SVN ## and other ZFS I/O.
## SVN ##
## SVN ## MFC r238113 (pjd):
## SVN ## vdev_io_done stage is not used for ioctls.
## SVN ##
## SVN ## MFC r238391:
## SVN ## Change behavior introduced in r237119 to vendor solution
## SVN ##
## SVN ## References:
## SVN ##   https://www.illumos.org/issues/2883
## SVN ##
## SVN ## MFC r238422:
## SVN ## Merge illumos commit 13749:df4cd82e2b60
## SVN ##
## SVN ## 1796 "ZFS HOLD" should not be used when doing "ZFS SEND" froma read-only pool
## SVN ## 2871 support for __ZFS_POOL_RESTRICT used by ZFS test suite
## SVN ## 2903 zfs destroy -d does not work
## SVN ## 2957 zfs destroy -R/r sometimes fails when removing defer-destroyed snapshot
## SVN ##
## SVN ## References:
## SVN ##   https://www.illumos.org/issues/1796
## SVN ##   https://www.illumos.org/issues/2871
## SVN ##   https://www.illumos.org/issues/2903
## SVN ##   https://www.illumos.org/issues/2957
## SVN ##
## SVN ## MFC r238926:
## SVN ## Partial MFV (illumos-gate 13753:2aba784c276b)
## SVN ## 2762 zpool command should have better support for feature flags
## SVN ##
## SVN ## References:
## SVN ##   https://www.illumos.org/issues/2762
## SVN ##
## SVN ## MFC r238950:
## SVN ## Fix reporting of root pool upgrade notice.
## SVN ##
## SVN ## MFC r238951:
## SVN ## Fix wrong indent according to style(9)
## SVN ##
## SVN ## MFC r239389:
## SVN ## Backport fix for vendor issue #3085
## SVN ## 3085 zfs diff panics, then panics in a loop on booting
## SVN ##
## SVN ## References:
## SVN ##   https://www.illumos.org/issues/3085
## SVN ##
## SVN ## MFC r239394:
## SVN ## Update zfs(8) manpage with illumos version of "zfs diff"
## SVN ##
## SVN ## Illumos issue:
## SVN ##   2399 zfs manual page does not document use of "zfs diff"
## SVN ##
## SVN ## References:
## SVN ##   https://www.illumos.org/issues/2399
## SVN ##
## SVN ## MFC r239620 [2]:
## SVN ## Merge recent vendor changes:
## SVN ## 3086 unnecessarily setting DS_FLAG_INCONSISTENT on async destroyed datasets
## SVN ## 3090 vdev_reopen() during reguid causes vdev to be treated as corrupt
## SVN ## 3102 vdev_uberblock_load() and vdev_validate() may read the wrong label
## SVN ##
## SVN ## Referenes:
## SVN ##   https://www.illumos.org/issues/3086
## SVN ##   https://www.illumos.org/issues/3090
## SVN ##   https://www.illumos.org/issues/3102
## SVN ##
## SVN ## MFC r239774:
## SVN ## Merge recent vendor changes:
## SVN ## 3100 zvol rename fails with EBUSY when dirty
## SVN ## 3104 eliminate empty bpobjs
## SVN ## 3120 zinject hangs in zfsdev_ioctl() due to uninitialized zc
## SVN ##
## SVN ## References:
## SVN ##   https://www.illumos.org/issues/3100
## SVN ##   https://www.illumos.org/issues/3104
## SVN ##   https://www.illumos.org/issues/3120
## SVN ##
## SVN ## MFC r239953 (joel):
## SVN ## Mdoc fixes.
## SVN ##
## SVN ## MFC r239958 (joel):
## SVN ## Minor mdoc fixes.
## SVN ##
## SVN ## MFC r239967 (joel):
## SVN ## Mdoc fixes.
## SVN ##
## SVN ## MFC r239968 (joel):
## SVN ## Remove trailing whitespace.
## SVN ##
## SVN ## MFC r240063 (gjb):
## SVN ## Add myself to copyright sections, per CDDL license.
## SVN ##
## SVN ## MFC r240133:
## SVN ## Merge recent vendor changes and sync code:
## SVN ## 1862 incremental zfs receive fails for sparse file > 8PB
## SVN ## 3112 ztest does not honor ZFS_DEBUG
## SVN ## 3122 zfs destroy filesystem should prefetch blocks
## SVN ## 3129 'zpool reopen' restarts resilvers
## SVN ## 3130 ztest failure: Assertion failed:
## SVN ##        0 == dmu_objset_destroy(name, B_FALSE) (0x0 == 0x10)
## SVN ##
## SVN ## References:
## SVN ##   https://www.illumos.org/issues/1862
## SVN ##   https://www.illumos.org/issues/3112
## SVN ##   https://www.illumos.org/issues/3122
## SVN ##   https://www.illumos.org/issues/3129
## SVN ##   https://www.illumos.org/issues/3130
## SVN ##
## SVN ## MFC r240153 (gjb) [3]:
## SVN ## Typo fix and minor word swap.
## SVN ##
## SVN ## MFC r240303:
## SVN ## Add assfail() and assfail3() to the opensolaris module.
## SVN ## Remove obsoleted intermediate cddl/compat/opensolaris/sys/debug.h.
## SVN ##
## SVN ## MFC r240345 (avg):
## SVN ## zfs: fix sa_modify_attrs handling of variable-sized attributes
## SVN ##
## SVN ## - skip length_idx index for a replaced variable-sized attribute
## SVN ## - skip length_idx index for a removed variable-sized attribute
## SVN ## - also re-arranged code to make sure that length_idx is always
## SVN ##   incremented for variable-sized attributes
## SVN ## - additionally add an assertion that the number of actually produced
## SVN ##   attributes is the same as the expected number of resulting
## SVN ##   attributes
## SVN ##
## SVN ## MFC r240415:
## SVN ## Merge recent zfs vendor changes, sync code and adjust userland DEBUG.
## SVN ##
## SVN ## Illumos issued covered:
## SVN ## 1884 Empty "used" field for zfs *space commands
## SVN ## 3006 VERIFY[S,U,P] and ASSERT[S,U,P] frequently check if first argument
## SVN ##      is zero
## SVN ## 3028 zfs {group,user}space -n prints (null) instead of numeric GID/UID
## SVN ## 3048 zfs {user,group}space [-s|-S] is broken
## SVN ## 3049 zfs {user,group}space -t doesn't really filter the results
## SVN ## 3060 zfs {user,group}space -H output isn't tab-delimited
## SVN ## 3061 zfs {user,group}space -o doesn't use specified fields order
## SVN ## 3064 usr/src/cmd/zpool/zpool_main.c misspells "successful"
## SVN ## 3093 zfs {user,group}space's -i is noop
## SVN ## 3098 zfs userspace/groupspace fail without saying why when run as non-root
## SVN ##
## SVN ## References:
## SVN ##   https://www.illumos.org/issues/ + [issue_id]
## SVN ##
## SVN ## MFC r240955 (partial):
## SVN ## Merge recent vendor changes in ZFS.
## SVN ##
## SVN ## Illumos issued covered:
## SVN ## 3139 zdb dies when it tries to determine path of unlinked file
## SVN ## 3189 kernel panic in ZFS test suite during hotspare_onoffline_004_neg
## SVN ## 3208 moving zpool cross-endian results in incorrect user/group accounting
## SVN ##
## SVN ## References:
## SVN ##   https://www.illumos.org/issues/ + [issue_id]
## SVN ##
## SVN ## MFC r241655:
## SVN ## Add missing initialization for do_prefix.
## SVN ## Corrects porting error in r238391
## SVN ##
## SVN ## Vendor issue and changeset reference:
## SVN ## 2883 changing "canmount" property to "on" should not always remount dataset
## SVN ## https://www.illumos.org/issues/2883
## SVN ## Changeset 13743:95aba6e49b9f
## SVN ##
## SVN ## MFC r243014:
## SVN ## Move zpool-features manual page from section 5 to section 7
## SVN ## and fix references
## SVN ##
## SVN ## Reported by:	pluknet
## SVN ##
## SVN ## MFC r243505:
## SVN ## Illumos 13886:e3261d03efbf
## SVN ##
## SVN ## 3349 zpool upgrade -V bumps the on disk version number, but leaves
## SVN ##      the in core version
## SVN ##
## SVN ## References:
## SVN ##   https://www.illumos.org/issues/3349
## SVN ##
## SVN ## MFC r243506:
## SVN ## zfs sha256 checksum is missing in zfs.8 manpage
## SVN ##
## SVN ## PR:	kern/167905 [1], kern/170912 [2], kern/170914 [2], doc/171356 [3]
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ##
@
text
@d1 1
a1 1
# $FreeBSD: stable/9/sys/modules/zfs/Makefile 243674 2012-11-29 14:05:04Z mm $
a15 1
SRCS+=	fnvpair.c
@


1.29.2.5
log
@## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/251419
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
@
text
@d1 1
a1 1
# $FreeBSD: stable/9/sys/modules/zfs/Makefile 251419 2013-06-05 13:03:47Z smh $
a74 1
SRCS+=	trim_map.c
@


1.29.2.6
log
@## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/254704
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
@
text
@d1 1
a1 1
# $FreeBSD: stable/9/sys/modules/zfs/Makefile 254704 2013-08-23 14:17:45Z avg $
a97 2
CFLAGS+=	-include ${.CURDIR}/../../cddl/compat/opensolaris/sys/debug_compat.h

@


1.29.2.7
log
@## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/262059
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
@
text
@d1 1
a1 1
# $FreeBSD: stable/9/sys/modules/zfs/Makefile 262059 2014-02-17 14:48:23Z avg $
a6 6
.if !defined(KERNBUILDDIR)
SRCS+=	opt_kdtrace.h
opt_kdtrace.h:
	echo "" > ${.TARGET}
.endif

@


1.29.2.1.2.1
log
@SVN rev 227445 on 2011-11-11 04:20:22Z by kensmith

Copy stable/9 to releng/9.0 as part of the FreeBSD 9.0-RELEASE release
cycle.

Approved by:	re (implicit)
@
text
@@


1.29.2.1.2.2
log
@Switch importer
@
text
@d1 1
a1 1
# $FreeBSD: releng/9.0/sys/modules/zfs/Makefile 219146 2011-03-01 20:51:41Z nwhitehorn $
@


1.28
log
@SVN rev 219089 on 2011-02-27 19:41:40Z by pjd

Finally... Import the latest open-source ZFS version - (SPA) 28.

Few new things available from now on:

- Data deduplication.
- Triple parity RAIDZ (RAIDZ3).
- zfs diff.
- zpool split.
- Snapshot holds.
- zpool import -F. Allows to rewind corrupted pool to earlier
  transaction group.
- Possibility to import pool in read-only mode.

MFC after:	1 month
@
text
@d88 1
a88 1
.if ${TARGET_ARCH} == "powerpc64"
@


1.27
log
@SVN rev 212543 on 2010-09-13 07:29:02Z by imp

Simplify atomic selection
@
text
@d5 1
a5 1
SRCS=	vnode_if.h
d15 1
d26 1
d49 1
d65 3
d88 4
@


1.26
log
@SVN rev 210193 on 2010-07-17 13:34:01Z by nwhitehorn

Add OpenSolaris atomics for powerpc64 and connect ZFS to the build on
this platform.

Reviewed by:	pjd
@
text
@d30 7
a36 3
.if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "ia64" || ${MACHINE_ARCH} == "sparc64" || ${MACHINE_ARCH} == "powerpc64"
.PATH:	${SUNW}/common/atomic/${MACHINE_ARCH}
SRCS+=	opensolaris_atomic.S
d38 1
a38 2
.PATH:	${.CURDIR}/../../cddl/compat/opensolaris/kern
SRCS+=	opensolaris_atomic.c
@


1.25
log
@SVN rev 209962 on 2010-07-12 23:49:04Z by mm

Merge ZFS version 15 and almost all OpenSolaris bugfixes referenced
in Solaris 10 updates 141445-09 and 142901-14.

Detailed information:
(OpenSolaris revisions and Bug IDs, Solaris 10 patch numbers)

7844:effed23820ae
6755435	zfs_open() and zfs_close() needs to use ZFS_ENTER/ZFS_VERIFY_ZP (141445-01)

7897:e520d8258820
6748436	inconsistent zpool.cache in boot_archive could panic a zfs root filesystem upon boot-up (141445-01)

7965:b795da521357
6740164	zpool attach can create an illegal root pool (141909-02)

8084:b811cc60d650
6769612	zpool_import() will continue to write to cachefile even if altroot is set (N/A)

8121:7fd09d4ebd9c
6757430	want an option for zdb to disable space map loading and leak tracking (141445-01)

8129:e4f45a0bfbb0
6542860	ASSERT: reason != VDEV_LABEL_REMOVE||vdev_inuse(vd, crtxg, reason, 0) (141445-01)

8188:fd00c0a81e80
6761100	want zdb option to select older uberblocks (141445-01)

8190:6eeea43ced42
6774886	zfs_setattr() won't allow ndmp to restore SUNWattr_rw (141445-01)

8225:59a9961c2aeb
6737463	panic while trying to write out config file if root pool import fails (141445-01)

8227:f7d7be9b1f56
6765294	Refactor replay (141445-01)

8228:51e9ca9ee3a5
6572357	libzfs should do more to avoid mnttab lookups (141909-01)
6572376	zfs_iter_filesystems and zfs_iter_snapshots get objset stats twice (141909-01)

8241:5a60f16123ba
6328632	zpool offline is a bit too conservative (141445-01)
6739487	ASSERT: txg <= spa_final_txg due to scrub/export race (141445-01)
6767129	ASSERT: cvd->vdev_isspare, in spa_vdev_detach() (141445-01)
6747698	checksum failures after offline -t / export / import / scrub (141445-01)
6745863	ZFS writes to disk after it has been offlined (141445-01)
6722540	50% slowdown on scrub/resilver with certain vdev configurations (141445-01)
6759999	resilver logic rewrites ditto blocks on both source and destination (141445-01)
6758107	I/O should never suspend during spa_load() (141445-01)
6776548	codereview(1) runs off the page when faced with multi-line comments (N/A)
6761406	AMD errata 91 workaround doesn't work on 64-bit systems (141445-01)

8242:e46e4b2f0a03
6770866	GRUB/ZFS should require physical path or devid, but not both (141445-01)

8269:03a7e9050cfd
6674216	"zfs share" doesn't work, but "zfs set sharenfs=on" does (141445-01)
6621164	$SRC/cmd/zfs/zfs_main.c seems to have a syntax error in the translation note (141445-01)
6635482	i18n problems in libzfs_dataset.c and zfs_main.c (141445-01)
6595194	"zfs get" VALUE column is as wide as NAME (141445-01)
6722991	vdev_disk.c: error checking for ddi_pathname_to_dev_t() must test for NODEV (141445-01)
6396518	ASSERT strings shouldn't be pre-processed (141445-01)

8274:846b39508aff
6713916	scrub/resilver needlessly decompress data (141445-01)

8343:655db2375fed
6739553	libzfs_status msgid table is out of sync (141445-01)
6784104	libzfs unfairly rejects numerical values greater than 2^63 (141445-01)
6784108	zfs_realloc() should not free original memory on failure (141445-01)

8525:e0e0e525d0f8
6788830	set large value to reservation cause core dump (141445-01)
6791064	want sysevents for ZFS scrub (141445-01)
6791066	need to be able to set cachefile on faulted pools (141445-01)
6791071	zpool_do_import() should not enable datasets on faulted pools (141445-01)
6792134	getting multiple properties on a faulted pool leads to confusion (141445-01)

8547:bcc7b46e5ff7
6792884	Vista clients cannot access .zfs (141445-01)

8632:36ef517870a3
6798384	It can take a village to raise a zio (141445-01)

8636:7e4ce9158df3
6551866	deadlock between zfs_write(), zfs_freesp(), and zfs_putapage() (141909-01)
6504953	zfs_getpage() misunderstands VOP_GETPAGE() interface (141909-01)
6702206	ZFS read/writer lock contention throttles sendfile() benchmark (141445-01)
6780491	Zone on a ZFS filesystem has poor fork/exec performance (141445-01)
6747596	assertion failed: DVA_EQUAL(BP_IDENTITY(&zio->io_bp_orig), BP_IDENTITY(zio->io_bp))); (141445-01)

8692:692d4668b40d
6801507	ZFS read aggregation should not mind the gap (141445-01)

8697:e62d2612c14d
6633095	creating a filesystem with many properties set is slow (141445-01)

8768:dfecfdbb27ed
6775697	oracle crashes when overwriting after hitting quota on zfs (141909-01)

8811:f8deccf701cf
6790687	libzfs mnttab caching ignores external changes (141445-01)
6791101	memory leak from libzfs_mnttab_init (141445-01)

8845:91af0d9c0790
6800942	smb_session_create() incorrectly stores IP addresses (N/A)
6582163	Access Control List (ACL) for shares (141445-01)
6804954	smb_search - shortname field should be space padded following the NULL terminator (N/A)
6800184	Panic at smb_oplock_conflict+0x35() (N/A)

8876:59d2e67b4b65
6803822	Reboot after replacement of system disk in a ZFS mirror drops to grub> prompt (141445-01)

8924:5af812f84759
6789318	coredump when issue zdb -uuuu poolname/ (141445-01)
6790345 zdb -dddd -e poolname coredump (141445-01)
6797109 zdb: 'zdb -dddddd pool_name/fs_name inode' coredump if the file with inode was deleted (141445-01)
6797118 zdb: 'zdb -dddddd poolname inum' coredump if I miss the fs name (141445-01)
6803343 shareiscsi=on failed, iscsitgtd failed request to share (141445-01)

9030:243fd360d81f
6815893	hang mounting a dataset after booting into a new boot environment (141445-01)

9056:826e1858a846
6809691	'zpool create -f' no longer overwrites ufs infomation (141445-01)

9179:d8fbd96b79b3
6790064	zfs needs to determine uid and gid earlier in create process (141445-01)

9214:8d350e5d04aa
6604992	forced unmount + being in .zfs/snapshot/<snap1> = not happy (141909-01)
6810367	assertion failed: dvp->v_flag & VROOT, file: ../../common/fs/gfs.c, line: 426 (141909-01)

9229:e3f8b41e5db4
6807765	ztest_dsl_dataset_promote_busy needs to clean up after ENOSPC (141445-01)

9230:e4561e3eb1ef
6821169	offlining a device results in checksum errors (141445-01)
6821170	ZFS should not increment error stats for unavailable devices (141445-01)
6824006	need to increase issue and interrupt taskqs threads in zfs (141445-01)

9234:bffdc4fc05c4
6792139	recovering from a suspended pool needs some work (141445-01)
6794830	reboot command hangs on a failed zfs pool (141445-01)

9246:67c03c93c071
6824062	System panicked in zfs_mount due to NULL pointer dereference when running btts and svvs tests (141909-01)

9276:a8a7fc849933
6816124	System crash running zpool destroy on broken zpool (141445-03)

9355:09928982c591
6818183	zfs snapshot -r is slow due to set_snap_props() doing txg_wait_synced() for each new snapshot (141445-03)

9391:413d0661ef33
6710376	log device can show incorrect status when other parts of pool are degraded (141445-03)

9396:f41cf682d0d3 (part already merged)
6501037	want user/group quotas on ZFS (141445-03)
6827260	assertion failed in arc_read(): hdr == pbuf->b_hdr (141445-03)
6815592	panic: No such hold X on refcount Y from zfs_znode_move (141445-03)
6759986	zfs list shows temporary %clone when doing online zfs recv (141445-03)

9404:319573cd93f8
6774713	zfs ignores canmount=noauto when sharenfs property != off (141445-03)

9412:4aefd8704ce0
6717022	ZFS DMU needs zero-copy support (141445-03)

9425:e7ffacaec3a8
6799895	spa_add_spares() needs to be protected by config lock (141445-03)
6826466	want to post sysevents on hot spare activation (141445-03)
6826468	spa 'allowfaulted' needs some work (141445-03)
6826469	kernel support for storing vdev FRU information (141445-03)
6826470	skip posting checksum errors from DTL regions of leaf vdevs (141445-03)
6826471	I/O errors after device remove probe can confuse FMA (141445-03)
6826472	spares should enjoy some of the benefits of cache devices (141445-03)

9443:2a96d8478e95
6833711	gang leaders shouldn't have to be logical (141445-03)

9463:d0bd231c7518
6764124	want zdb to be able to checksum metadata blocks only (141445-03)

9465:8372081b8019
6830237	zfs panic in zfs_groupmember() (141445-03)

9466:1fdfd1fed9c4
6833162	phantom log device in zpool status (141445-03)

9469:4f68f041ddcd
6824968	add ZFS userquota support to rquotad (141445-03)

9470:6d827468d7b5
6834217	godfather I/O should reexecute (141445-03)

9480:fcff33da767f
6596237	Stop looking and start ganging (141909-02)

9493:9933d599bc93
6623978	lwb->lwb_buf != NULL, file ../../../uts/common/fs/zfs/zil.c, line 787, function zil_lwb_commit (141445-06)

9512:64cafcbcc337
6801810	Commit of aligned streaming rewrites to ZIL device causes unwanted disk reads (N/A)

9515:d3b739d9d043
6586537	async zio taskqs can block out userland commands (142901-09)

9554:787363635b6a
6836768	zfs_userspace() callback has no way to indicate failure (N/A)

9574:1eb6a6ab2c57
6838062	zfs panics when an error is encountered in space_map_load() (141909-02)

9583:b0696cd037cc
6794136	Panic BAD TRAP: type=e when importing degraded zraid pool. (141909-03)

9630:e25a03f552e0
6776104	"zfs import" deadlock between spa_unload() and spa_async_thread() (141445-06)

9653:a70048a304d1
6664765	Unable to remove files when using fat-zap and quota exceeded on ZFS filesystem (141445-06)

9688:127be1845343
6841321	zfs userspace / zfs get userused@@ doesn't work on mounted snapshot (N/A)
6843069	zfs get userused@@S-1-... doesn't work (N/A)

9873:8ddc892eca6e
6847229	assertion failed: refcount_count(&tx->tx_space_written) + delta <= tx->tx_space_towrite in dmu_tx.c (141445-06)

9904:d260bd3fd47c
6838344	kernel heap corruption detected on zil while stress testing (141445-06)

9951:a4895b3dd543
6844900	zfs_ioc_userspace_upgrade leaks (N/A)

10040:38b25aeeaf7a
6857012	zfs panics on zpool import (141445-06)

10000:241a51d8720c
6848242	zdb -e no longer works as expected (N/A)

10100:4a6965f6bef8
6856634	snv_117 not booting: zfs_parse_bootfs: error2 (141445-07)

10160:a45b03783d44
6861983	zfs should use new name <-> SID interfaces (N/A)
6862984	userquota commands can hang (141445-06)

10299:80845694147f
6696858	zfs receive of incremental replication stream can dereference NULL pointer and crash (N/A)

10302:a9e3d1987706
6696858	zfs receive of incremental replication stream can dereference NULL pointer and crash (fix lint) (N/A)

10575:2a8816c5173b (partial merge)
6882227 spa_async_remove() shouldn't do a full clear (142901-14)

10800:469478b180d9
6880764	fsync on zfs is broken if writes are greater than 32kb on a hard crash and no log attached (142901-09)
6793430 zdb -ivvvv assertion failure: bp->blk_cksum.zc_word[2] == dmu_objset_id(zilog->zl_os) (N/A)

10801:e0bf032e8673 (partial merge)
6822816 assertion failed: zap_remove_int(ds_next_clones_obj) returns ENOENT (142901-09)

10810:b6b161a6ae4a
6892298 buf->b_hdr->b_state != arc_anon, file: ../../common/fs/zfs/arc.c, line: 2849 (142901-09)

10890:499786962772
6807339	spurious checksum errors when replacing a vdev (142901-13)

11249:6c30f7dfc97b
6906110 bad trap panic in zil_replay_log_record (142901-13)
6906946 zfs replay isn't handling uid/gid correctly (142901-13)

11454:6e69bacc1a5a
6898245 suspended zpool should not cause rest of the zfs/zpool commands to hang (142901-10)

11546:42ea6be8961b (partial merge)
6833999 3-way deadlock in dsl_dataset_hold_ref() and dsl_sync_task_group_sync() (142901-09)

Discussed with:	pjd
Approved by:	delphij (mentor)
Obtained from:	OpenSolaris (multiple Bug IDs)
MFC after:	2 months
@
text
@d30 1
a30 1
.if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "ia64" || ${MACHINE_ARCH} == "sparc64"
@


1.24
log
@SVN rev 208770 on 2010-06-03 09:29:54Z by pjd

opensolaris_kmem.c is already part of opensolaris.ko which zfs.ko depends on.

Reported by:	avg
MFC after:	3 days
@
text
@d26 1
@


1.23
log
@SVN rev 208455 on 2010-05-23 18:43:06Z by pjd

ZIO_USE_UMA is no longer used.

MFC after:	3 days
@
text
@a19 1
SRCS+=	opensolaris_kmem.c
@


1.22
log
@SVN rev 207920 on 2010-05-11 15:32:21Z by pjd

Back out r205134. It is not stable.

MFC after:	3 days
@
text
@a65 3
# Use UMA for ZIO allocation.
#CFLAGS+=-DZIO_USE_UMA

@


1.21
log
@SVN rev 205134 on 2010-03-13 21:53:48Z by kmacy

make UMA the default allocator for ZFS buffers - this avoids
a great deal of contention in kmem_alloc

MFC after:	7 days
@
text
@d67 1
a67 1
CFLAGS+=-DZIO_USE_UMA
@


1.20
log
@SVN rev 196295 on 2009-08-17 09:01:20Z by pjd

Remove OpenSolaris taskq port (it performs very poorly in our kernel) and
replace it with wrappers around our taskqueue(9).
To make it possible implement taskqueue_member() function which returns 1
if the given thread was created by the given taskqueue.

Approved by:	re (kib)
@
text
@d66 2
a67 2
# Use UMA for ZIO allocation. This is not stable.
#CFLAGS+=-DZIO_USE_UMA
@


1.19
log
@SVN rev 193128 on 2009-05-30 22:23:58Z by kmacy

fix xdrmem_control to be safe in an if statement
fix zfs to depend on krpc
remove xdr from zfs makefile

Submitted by:	dchagin@@freebsd.org
@
text
@d26 1
a45 1
SRCS+=	taskq.c
@


1.19.2.1
log
@SVN rev 196045 on 2009-08-03 08:13:06Z by kensmith

Copy head to stable/8 as part of 8.0 Release cycle.

Approved by:	re (Implicit)
@
text
@@


1.19.2.2
log
@SVN rev 196296 on 2009-08-17 09:03:47Z by pjd

MFC r196295:

Remove OpenSolaris taskq port (it performs very poorly in our kernel) and
replace it with wrappers around our taskqueue(9).
To make it possible implement taskqueue_member() function which returns 1
if the given thread was created by the given taskqueue.

Approved by:	re (kib)
@
text
@a25 1
SRCS+=	opensolaris_taskq.c
d45 1
@


1.19.2.3
log
@SVN rev 206815 on 2010-04-18 21:36:34Z by pjd

MFC r203504,r204067,r204073,r204101,r204804,r205079,r205080,r205132,r205133,
    r205134,r205231,r205253,r205264,r205346,r206051,r206667,r206792,r206793,
    r206794,r206795,r206796,r206797:

r203504:

Open provider for writting when we find the right one. Opening too much
providers for writing provokes huge traffic related to taste events send
by GEOM on close. This can lead to various problems with opening GEOM
providers that are created on top of other GEOM providers.

Reorted by:	Kurt Touet <ktouet@@gmail.com>, mr
Tested by:	mr, Baginski Darren <kickbsd@@ya.ru>

r204067:

Update comment. We also look for GPT partitions.

r204073:

Add tunable and sysctl to skip hostid check on pool import.

r204101:

Don't set f_bsize to recordsize. It might confuse some software (like squid).

Submitted by:	Alexander Zagrebin <alexz@@visp.ru>

r204804:

Remove racy assertion.

Reported by:	Attila Nagy <bra@@fsn.hu>
Obtained from:	OpenSolaris, Bug ID 6827260

r205079:

Remove bogus assertion.

Reported by:	Johan Ström <johan@@stromnet.se>
Obtained from:	OpenSolaris, Bug ID 6920880

r205080:

Force commit to correct Bug ID:

Obtained from:	OpenSolaris, Bug ID 6920880

r205132:

Don't bottleneck on acquiring the stream locks - this avoids a massive
drop off in throughput with large numbers of simultaneous reads

r205133:

fix compilation under ZIO_USE_UMA

r205134:

make UMA the default allocator for ZFS buffers - this avoids
a great deal of contention in kmem_alloc

r205231:

- reduce contention by breaking up ARC state locks in to 16 for data
  and 16 for metadata
- export L2ARC tunables as sysctls
- add several kstats to track L2ARC state more precisely
- avoid holding a contended lock when atomically incrementing a
  contended counter (no lock protection needed for atomics)

r205253:

use CACHE_LINE_SIZE instead of hardcoding 128 for lock pad

pointed out by Marius Nuennerich and jhb@@

r205264:

- cache line align arcs_lock array (h/t Marius Nuennerich)
- fix ARCS_LOCK_PAD to use architecture defined CACHE_LINE_SIZE
- cache line align buf_hash_table ht_locks array

r205346:

The same code is used to import and to create pool.
The order of operations is the following:
1. Try to open vdev by remembered path and guid.
2. If 1 failed, try to find vdev which guid matches and ignore the path.
3. If 2 failed this means either that the vdev we're looking for is gone
   or that pool is being created and vdev doesn't contain proper guid yet.
   To be able to handle pool creation we open vdev by path anyway.

Because of 3 it is possible that we open wrong vdev on import which can lead to
confusions.

The solution for this is to check spa_load_state. On pool creation it will be
equal to SPA_LOAD_NONE and we can open vdev only by path immediately and if it
is not equal to SPA_LOAD_NONE we first open by path+guid and when that fails,
we open by guid. We no longer open wrong vdev on import.

r206051:

IOCPARM_MAX defines maximum size of a structure that can be passed
directly to ioctl(2). Because of how ioctl command is build using _IO*()
macros we have only 13 bits to encode structure size. So the structure
can be up to 8kB-1.

Currently we define IOCPARM_MAX as PAGE_SIZE.

This is IMHO wrong for three main reasons:

1. It is confusing on archs with page size larger than 8kB (not really
   sure if we support such archs (sparc64?)), as even if PAGE_SIZE is
   bigger than 8kB, we won't be able to encode anything larger in ioctl
   command.

2. It is a waste. Why the structure can be only 4kB on most archs if we
   have 13 bits dedicated for that, not 12?

3. It shouldn't depend on architecture and page size. My ioctl command
   can work on one arch, but can't on the other?

Increase IOCPARM_MAX to 8kB and make it independed of PAGE_SIZE and
architecture it is compiled for. This allows to use all the bits on all the
archs for size. Note that this doesn't mean we will copy more on every ioctl(2)
call. No. We still copyin(9)/copyout(9) only exact number of bytes encoded in
ioctl command.

Practical use for this change is ZFS. zfs_cmd_t structure used for ZFS
ioctls is larger than 4kB.

Silence on:	arch@@

r206667:

Fix 3-way deadlock that can happen because of ZFS and vnode lock
order reversal.

thread0 (vfs_fhtovp)	thread1 (vop_getattr)	thread2 (zfs_recv)
--------------------	---------------------	------------------
			vn_lock
rrw_enter_read
						rrw_enter_write (hangs)
			rrw_enter_read (hangs)
vn_lock (hangs)

Reported by:	Attila Nagy <bra@@fsn.hu>

r206792:

Set ARC_L2_WRITING on L2ARC header creation.

Obtained from:	OpenSolaris

r206793:

Remove racy assertion.

Obtained from:	OpenSolaris

r206794:

Extend locks scope to match OpenSolaris.

r206795:

Add missing list and lock destruction.

r206796:

Style fixes.

r206797:

Restore previous order.
@
text
@d66 2
a67 2
# Use UMA for ZIO allocation.
CFLAGS+=-DZIO_USE_UMA
@


1.19.2.4
log
@SVN rev 208487 on 2010-05-24 10:09:36Z by pjd

MFC r207920,r207934,r207936,r207937,r207970,r208142,r208147,r208148,r208166,
r208454,r208455,r208458:

r207920:

Back out r205134. It is not stable.

r207934:

Add missing new line characters to the warnings.

r207936:

Eventhough r203504 eliminates taste traffic provoked by vdev_geom.c,
ZFS still like to open all vdevs, close them and open them again,
which in turn provokes taste traffic anyway.

I don't know of any clean way to fix it, so do it the hard way - if we can't
open provider for writing just retry 5 times with 0.5 pauses. This should
elimitate accidental races caused by other classes tasting providers created on
top of our vdevs.

Reported by:	James R. Van Artsdalen <james-freebsd-fs2@@jrv.org>
Reported by:	Yuri Pankov <yuri.pankov@@gmail.com>

r207937:

I added vfs_lowvnodes event, but it was only used for a short while and now
it is totally unused. Remove it.

r207970:

When there is no memory or KVA, try to help by reclaiming some vnodes.
This helps with 'kmem_map too small' panics.

No objections from:	kib
Tested by:		Alexander V. Ribchansky <shurik@@zk.informjust.ua>

r208142:

The whole point of having dedicated worker thread for each leaf VDEV was to
avoid calling zio_interrupt() from geom_up thread context. It turns out that
when provider is forcibly removed from the system and we kill worker thread
there can still be some ZIOs pending. To complete pending ZIOs when there is
no worker thread anymore we still have to call zio_interrupt() from geom_up
context. To avoid this race just remove use of worker threads altogether.
This should be more or less fine, because I also thought that zio_interrupt()
does more work, but it only makes small UMA allocation with M_WAITOK.
It also saves one context switch per I/O request.

PR:		kern/145339
Reported by:	Alex Bakhtin <Alex.Bakhtin@@gmail.com>

r208147:

Add task structure to zio and use it instead of allocating one.
This eliminates the only place where we can sleep when calling zio_interrupt().
As a side-effect this can actually improve performance a little as we
allocate one less thing for every I/O.

Prodded by:	kib

r208148:

Allow to configure UMA usage for ZIO data via loader and turn it on by
default for amd64. On i386 I saw performance degradation when UMA was used,
but for amd64 it should help.

r208166:

Fix userland build by making io_task available only for the kernel and by
providing taskq_dispatch_safe() macro.

r208454:

Remove ZIO_USE_UMA from arc.c as well.

r208455:

ZIO_USE_UMA is no longer used.

r208458:

Create UMA zones unconditionally.
@
text
@d66 3
@


1.19.2.5
log
@SVN rev 209283 on 2010-06-18 06:24:40Z by pjd

MFC r208770:

opensolaris_kmem.c is already part of opensolaris.ko which zfs.ko depends on.

Reported by:	avg
@
text
@d20 1
@


1.19.2.6
log
@SVN rev 212668 on 2010-09-15 16:05:40Z by mm

MFC r209962, r211970-r211972, r212050, r212605, r212611

MFC r209962:

Merge ZFS version 15 and almost all OpenSolaris bugfixes referenced
in Solaris 10 updates 141445-09 and 142901-14.

Detailed information:
(OpenSolaris revisions and Bug IDs, Solaris 10 patch numbers)

7844:effed23820ae
6755435 zfs_open() and zfs_close() needs to use ZFS_ENTER/ZFS_VERIFY_ZP (141445-01)

7897:e520d8258820
6748436 inconsistent zpool.cache in boot_archive could panic a zfs root filesystem upon boot-up (141445-01)

7965:b795da521357
6740164 zpool attach can create an illegal root pool (141909-02)

8084:b811cc60d650
6769612 zpool_import() will continue to write to cachefile even if altroot is set (N/A)

8121:7fd09d4ebd9c
6757430 want an option for zdb to disable space map loading and leak tracking (141445-01)

8129:e4f45a0bfbb0
6542860 ASSERT: reason != VDEV_LABEL_REMOVE||vdev_inuse(vd, crtxg, reason, 0) (141445-01)

8188:fd00c0a81e80
6761100 want zdb option to select older uberblocks (141445-01)

8190:6eeea43ced42
6774886 zfs_setattr() won't allow ndmp to restore SUNWattr_rw (141445-01)

8225:59a9961c2aeb
6737463 panic while trying to write out config file if root pool import fails (141445-01)

8227:f7d7be9b1f56
6765294 Refactor replay (141445-01)

8228:51e9ca9ee3a5
6572357 libzfs should do more to avoid mnttab lookups (141909-01)
6572376 zfs_iter_filesystems and zfs_iter_snapshots get objset stats twice (141909-01)

8241:5a60f16123ba
6328632 zpool offline is a bit too conservative (141445-01)
6739487 ASSERT: txg <= spa_final_txg due to scrub/export race (141445-01)
6767129 ASSERT: cvd->vdev_isspare, in spa_vdev_detach() (141445-01)
6747698 checksum failures after offline -t / export / import / scrub (141445-01)
6745863 ZFS writes to disk after it has been offlined (141445-01)
6722540 50% slowdown on scrub/resilver with certain vdev configurations (141445-01)
6759999 resilver logic rewrites ditto blocks on both source and destination (141445-01)
6758107 I/O should never suspend during spa_load() (141445-01)
6776548 codereview(1) runs off the page when faced with multi-line comments (N/A)
6761406 AMD errata 91 workaround doesn't work on 64-bit systems (141445-01)

8242:e46e4b2f0a03
6770866 GRUB/ZFS should require physical path or devid, but not both (141445-01)

8269:03a7e9050cfd
6674216 "zfs share" doesn't work, but "zfs set sharenfs=on" does (141445-01)
6621164 $SRC/cmd/zfs/zfs_main.c seems to have a syntax error in the translation note (141445-01)
6635482 i18n problems in libzfs_dataset.c and zfs_main.c (141445-01)
6595194 "zfs get" VALUE column is as wide as NAME (141445-01)
6722991 vdev_disk.c: error checking for ddi_pathname_to_dev_t() must test for NODEV (141445-01)
6396518 ASSERT strings shouldn't be pre-processed (141445-01)

8274:846b39508aff
6713916 scrub/resilver needlessly decompress data (141445-01)

8343:655db2375fed
6739553 libzfs_status msgid table is out of sync (141445-01)
6784104 libzfs unfairly rejects numerical values greater than 2^63 (141445-01)
6784108 zfs_realloc() should not free original memory on failure (141445-01)

8525:e0e0e525d0f8
6788830 set large value to reservation cause core dump (141445-01)
6791064 want sysevents for ZFS scrub (141445-01)
6791066 need to be able to set cachefile on faulted pools (141445-01)
6791071 zpool_do_import() should not enable datasets on faulted pools (141445-01)
6792134 getting multiple properties on a faulted pool leads to confusion (141445-01)

8547:bcc7b46e5ff7
6792884 Vista clients cannot access .zfs (141445-01)

8632:36ef517870a3
6798384 It can take a village to raise a zio (141445-01)

8636:7e4ce9158df3
6551866 deadlock between zfs_write(), zfs_freesp(), and zfs_putapage() (141909-01)
6504953 zfs_getpage() misunderstands VOP_GETPAGE() interface (141909-01)
6702206 ZFS read/writer lock contention throttles sendfile() benchmark (141445-01)
6780491 Zone on a ZFS filesystem has poor fork/exec performance (141445-01)
6747596 assertion failed: DVA_EQUAL(BP_IDENTITY(&zio->io_bp_orig), BP_IDENTITY(zio->io_bp))); (141445-01)

8692:692d4668b40d
6801507 ZFS read aggregation should not mind the gap (141445-01)

8697:e62d2612c14d
6633095 creating a filesystem with many properties set is slow (141445-01)

8768:dfecfdbb27ed
6775697 oracle crashes when overwriting after hitting quota on zfs (141909-01)

8811:f8deccf701cf
6790687 libzfs mnttab caching ignores external changes (141445-01)
6791101 memory leak from libzfs_mnttab_init (141445-01)

8845:91af0d9c0790
6800942 smb_session_create() incorrectly stores IP addresses (N/A)
6582163 Access Control List (ACL) for shares (141445-01)
6804954 smb_search - shortname field should be space padded following the NULL terminator (N/A)
6800184 Panic at smb_oplock_conflict+0x35() (N/A)

8876:59d2e67b4b65
6803822 Reboot after replacement of system disk in a ZFS mirror drops to grub> prompt (141445-01)

8924:5af812f84759
6789318 coredump when issue zdb -uuuu poolname/ (141445-01)
6790345 zdb -dddd -e poolname coredump (141445-01)
6797109 zdb: 'zdb -dddddd pool_name/fs_name inode' coredump if the file with inode was deleted (141445-01)
6797118 zdb: 'zdb -dddddd poolname inum' coredump if I miss the fs name (141445-01)
6803343 shareiscsi=on failed, iscsitgtd failed request to share (141445-01)

9030:243fd360d81f
6815893 hang mounting a dataset after booting into a new boot environment (141445-01)

9056:826e1858a846
6809691 'zpool create -f' no longer overwrites ufs infomation (141445-01)

9179:d8fbd96b79b3
6790064 zfs needs to determine uid and gid earlier in create process (141445-01)

9214:8d350e5d04aa
6604992 forced unmount + being in .zfs/snapshot/<snap1> = not happy (141909-01)
6810367 assertion failed: dvp->v_flag & VROOT, file: ../../common/fs/gfs.c, line: 426 (141909-01)

9229:e3f8b41e5db4
6807765 ztest_dsl_dataset_promote_busy needs to clean up after ENOSPC (141445-01)

9230:e4561e3eb1ef
6821169 offlining a device results in checksum errors (141445-01)
6821170 ZFS should not increment error stats for unavailable devices (141445-01)
6824006 need to increase issue and interrupt taskqs threads in zfs (141445-01)

9234:bffdc4fc05c4
6792139 recovering from a suspended pool needs some work (141445-01)
6794830 reboot command hangs on a failed zfs pool (141445-01)

9246:67c03c93c071
6824062 System panicked in zfs_mount due to NULL pointer dereference when running btts and svvs tests (141909-01)

9276:a8a7fc849933
6816124 System crash running zpool destroy on broken zpool (141445-03)

9355:09928982c591
6818183 zfs snapshot -r is slow due to set_snap_props() doing txg_wait_synced() for each new snapshot (141445-03)

9391:413d0661ef33
6710376 log device can show incorrect status when other parts of pool are degraded (141445-03)

9396:f41cf682d0d3 (part already merged)
6501037 want user/group quotas on ZFS (141445-03)
6827260 assertion failed in arc_read(): hdr == pbuf->b_hdr (141445-03)
6815592 panic: No such hold X on refcount Y from zfs_znode_move (141445-03)
6759986 zfs list shows temporary %clone when doing online zfs recv (141445-03)

9404:319573cd93f8
6774713 zfs ignores canmount=noauto when sharenfs property != off (141445-03)

9412:4aefd8704ce0
6717022 ZFS DMU needs zero-copy support (141445-03)

9425:e7ffacaec3a8
6799895 spa_add_spares() needs to be protected by config lock (141445-03)
6826466 want to post sysevents on hot spare activation (141445-03)
6826468 spa 'allowfaulted' needs some work (141445-03)
6826469 kernel support for storing vdev FRU information (141445-03)
6826470 skip posting checksum errors from DTL regions of leaf vdevs (141445-03)
6826471 I/O errors after device remove probe can confuse FMA (141445-03)
6826472 spares should enjoy some of the benefits of cache devices (141445-03)

9443:2a96d8478e95
6833711 gang leaders shouldn't have to be logical (141445-03)

9463:d0bd231c7518
6764124 want zdb to be able to checksum metadata blocks only (141445-03)

9465:8372081b8019
6830237 zfs panic in zfs_groupmember() (141445-03)

9466:1fdfd1fed9c4
6833162 phantom log device in zpool status (141445-03)

9469:4f68f041ddcd
6824968 add ZFS userquota support to rquotad (141445-03)

9470:6d827468d7b5
6834217 godfather I/O should reexecute (141445-03)

9480:fcff33da767f
6596237 Stop looking and start ganging (141909-02)

9493:9933d599bc93
6623978 lwb->lwb_buf != NULL, file ../../../uts/common/fs/zfs/zil.c, line 787, function zil_lwb_commit (141445-06)

9512:64cafcbcc337
6801810 Commit of aligned streaming rewrites to ZIL device causes unwanted disk reads (N/A)

9515:d3b739d9d043
6586537 async zio taskqs can block out userland commands (142901-09)

9554:787363635b6a
6836768 zfs_userspace() callback has no way to indicate failure (N/A)

9574:1eb6a6ab2c57
6838062 zfs panics when an error is encountered in space_map_load() (141909-02)

9583:b0696cd037cc
6794136 Panic BAD TRAP: type=e when importing degraded zraid pool. (141909-03)

9630:e25a03f552e0
6776104 "zfs import" deadlock between spa_unload() and spa_async_thread() (141445-06)

9653:a70048a304d1
6664765 Unable to remove files when using fat-zap and quota exceeded on ZFS filesystem (141445-06)

9688:127be1845343
6841321 zfs userspace / zfs get userused@@ doesn't work on mounted snapshot (N/A)
6843069 zfs get userused@@S-1-... doesn't work (N/A)

9873:8ddc892eca6e
6847229 assertion failed: refcount_count(&tx->tx_space_written) + delta <= tx->tx_space_towrite in dmu_tx.c (141445-06)

9904:d260bd3fd47c
6838344 kernel heap corruption detected on zil while stress testing (141445-06)

9951:a4895b3dd543
6844900 zfs_ioc_userspace_upgrade leaks (N/A)

10040:38b25aeeaf7a
6857012 zfs panics on zpool import (141445-06)

10000:241a51d8720c
6848242 zdb -e no longer works as expected (N/A)

10100:4a6965f6bef8
6856634 snv_117 not booting: zfs_parse_bootfs: error2 (141445-07)

10160:a45b03783d44
6861983 zfs should use new name <-> SID interfaces (N/A)
6862984 userquota commands can hang (141445-06)

10299:80845694147f
6696858 zfs receive of incremental replication stream can dereference NULL pointer and crash (N/A)

10302:a9e3d1987706
6696858 zfs receive of incremental replication stream can dereference NULL pointer and crash (fix lint) (N/A)

10575:2a8816c5173b (partial merge)
6882227 spa_async_remove() shouldn't do a full clear (142901-14)

10800:469478b180d9
6880764 fsync on zfs is broken if writes are greater than 32kb on a hard crash and no log attached (142901-09)
6793430 zdb -ivvvv assertion failure: bp->blk_cksum.zc_word[2] == dmu_objset_id(zilog->zl_os) (N/A)

10801:e0bf032e8673 (partial merge)
6822816 assertion failed: zap_remove_int(ds_next_clones_obj) returns ENOENT (142901-09)

10810:b6b161a6ae4a
6892298 buf->b_hdr->b_state != arc_anon, file: ../../common/fs/zfs/arc.c, line: 2849 (142901-09)

10890:499786962772
6807339 spurious checksum errors when replacing a vdev (142901-13)

11249:6c30f7dfc97b
6906110 bad trap panic in zil_replay_log_record (142901-13)
6906946 zfs replay isn't handling uid/gid correctly (142901-13)

11454:6e69bacc1a5a
6898245 suspended zpool should not cause rest of the zfs/zpool commands to hang (142901-10)

11546:42ea6be8961b (partial merge)
6833999 3-way deadlock in dsl_dataset_hold_ref() and dsl_sync_task_group_sync() (142901-09)

MFC r211970:

Fix 'zfs allow' (maybe not only) returning:

        cannot access dataset system/usr/home: Operation not supported

by including libzfs_impl.h. What libzfs_impl.h does is to redefine ioctl() to
be compatible with OpenSolaris. More specifically OpenSolaris returns ENOMEM
when buffer is too small and sets field zc_nvlist_dst_size to the size that
will be big enough for the data. In FreeBSD case ioctl() doesn't copy data
structure back in case of a failure. We work-around it in kernel and libzfs by
returning 0 from ioctl() and always checking if zc_nvlist_dst_size hasn't
changed. For this work-around to work in pyzfs we need this compatible ioctl()
which is implemented in libzfs_impl.h.

MFC r211971:

Print errors on stderr.

MFC r211972:

Give user a hint what to do when /usr/lib/zfs/pyzfs.py is missing.

MFC r212050:

When upgrading a pool which contain root file system, give user a hint that
he should update boot code.

MFC r212605:

Add missing vop_vector zfsctl_ops_shares
Add missing locks around VOP_READDIR and VOP_GETATTR with z_shares_dir

MFC r212611:

Remove duplicated VFS_HOLD due to a mismerge.

Approved by:	delphij (mentor)
Obtained from:	OpenSolaris (multiple Bug IDs), Perforce (pjd)
@
text
@a25 1
SRCS+=	opensolaris_uio.c
@


1.19.2.7
log
@SVN rev 222741 on 2011-06-06 09:36:46Z by mm

MFC ZFS version 28 and related revisions:
208682, 211900, 212543, 213791, 216378, 218007, 218725, 219089, 219090,
219092, 219316, 219317, 219320, 219404, 219636, 219703, 219959, 219973,
220447, 220575, 221112, 221177, 221263, 221409, 222050, 222267, 222268

MFC r208682 (pjd):
Fix panic when reading label from provider with non power of 2 sector size.

MFC r211900 (pjd):
Use ZFS_CTLDIR_NAME instead of hardcoding ".zfs".

MFC r212543 (imp):
Simplify atomic selection

MFC r213791 (rpaulo):
Pass a format string to panic() and to taskqueue_start_threads().

Found with:	clang

MFC r216378 (pjd):
Remove redundant semicolon and empty like.

MFC r218007 (jchandra):
CDDL fixes for MIPS n32.

Provide 64 bit atomic ops, and use 32 bit pointer.

MFC r218725 (dim):
When building libzpool on ia64 or sparc64, don't add the .note.GNU-stack
section.

MFC r219089 (pjd):
Finally... Import the latest open-source ZFS version - (SPA) 28.

Few new things available from now on:

- Data deduplication.
- Triple parity RAIDZ (RAIDZ3).
- zfs diff.
- zpool split.
- Snapshot holds.
- zpool import -F. Allows to rewind corrupted pool to earlier
  transaction group.
- Possibility to import pool in read-only mode.

MFC r219090 (pjd):
Commit two more files missed in r219089.

MFC r219092 (pjd):
Use proper lock in assertion.

MFC r219316 (pjd):
Simplify zvol_remove_minors() a bit.

MFC r219317 (pjd):
Make renaming of a ZVOL, ZVOL's parent directory and ZVOL snapshot work.

MFC r219320 (pjd):
Fix libzpool build.

MFC r219404 (pjd):
Correct readdir over ZFS handling.

MFC r219636 (pjd):
Fix potential panic in dbuf_sync_list() relate to spill blocks handling.

MFC r219703 (ae):
The size of zfsboot2 grown up to 64 Kbytes in r219089.
Increase NSECT up to 128 sectors too.

MFC r219959 (pjd):
Properly print characters larger than 127.

MFC r219973 (pjd):
Checking file access on size change is bogus. The checks are done earlier by
VFS where we know if this is truncate(2) or ftruncate(2). If this is the
latter we should depend on the mode the file was opened and not on the current
permission.

MFC r220447 (mm):
Partially fix ZFS compat code for sparc64.
Some endianess bugs still need to be resolved.

MFC r220575 (pjd):
Fix 'zfs list <path>' handling. If the path was found, the 'ret' variable was
uninitialized.

MFC r221112 (marcel):
Fix copy-paste bug.

MFC r221177 (jhb):
Due to space constraints, the UFS boot2 and boot1 use an evil hack where
boot2 calls back into boot1 to perform disk reads.  The ZFS MBR boot blocks
do not have the same space constraints, so remove this hack for ZFS.
While here, remove commented out code to support C/H/S addressing from
zfsldr.  The ZFS and GPT bootstraps always just use EDD LBA addressing.

MFC r221263 (mm):
Fix deduplicated zfs receive
(dmu_recv_stream builds incomplete guid_to_ds_map)

Illumos-gate changeset: 13329:c48b8bf84ab7

MFC r221409 (marius):
Convert the last use of xcopyout() to ddi_copyout() and remove the now
unused xcopyin() as well as xcopyout().

MFC r222050 (mm):
Restore old (v15) behaviour for a recursive snapshot destroy.
(zfs destroy -r pool/dataset@@snapshot)

To destroy all descendent snapshots with the same name the top level
snapshot was not required to exist. So if the top level snapshot does
not exist, check permissions of the parent dataset instead.

Filed as Illumos Bug #1043

MFC r222267 (pjd):
Don't access task structure once we call task function.
The task structure might be no longer available.
This also allows to eliminates the need for two tasks in the zio structure.

MFC r222268 (pjd):
Don't pass pointer to name buffer which is on the stack to another thread,
because the stack might be paged out once the other thread tries to use the
data. Instead, just allocate memory.

Discussed with:		pjd
@
text
@d5 1
a5 1
SRCS=	bus_if.h device_if.h vnode_if.h
a14 1
SRCS+=	nvpair_alloc_fixed.c
a24 1
SRCS+=	opensolaris_sysevent.c
d30 3
a32 4
_A=${.CURDIR}/../../cddl/contrib/opensolaris/common/atomic
.if exists(${_A}/${MACHINE_ARCH}/opensolaris_atomic.S)
.PATH:	${_A}/${MACHINE_ARCH}
SRCS+=		opensolaris_atomic.S
d34 2
a35 1
SRCS+=		opensolaris_atomic.c
a43 1
SRCS+=	fm.c
a58 3
.PATH:	${.CURDIR}/../../crypto/sha2
SRCS+=	sha2.c

@


1.19.2.8
log
@## SVN ##
## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/ 242909
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ## r242909 | dim | 2012-11-12 07:47:19 +0000 (Mon, 12 Nov 2012) | 20 lines
## SVN ##
## SVN ## MFC r242625:
## SVN ##
## SVN ## Remove duplicate const specifiers in many drivers (I hope I got all of
## SVN ## them, please let me know if not).  Most of these are of the form:
## SVN ##
## SVN ## static const struct bzzt_type {
## SVN ##       [...list of members...]
## SVN ## } const bzzt_devs[] = {
## SVN ##       [...list of initializers...]
## SVN ## };
## SVN ##
## SVN ## The second const is unnecessary, as arrays cannot be modified anyway,
## SVN ## and if the elements are const, the whole thing is const automatically
## SVN ## (e.g. it is placed in .rodata).
## SVN ##
## SVN ## I have verified this does not change the binary output of a full kernel
## SVN ## build (except for build timestamps embedded in the object files).
## SVN ##
## SVN ## Reviewed by:	yongari, marius
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ##
@
text
@d1 1
a1 1
# $FreeBSD: stable/8/sys/modules/zfs/Makefile 222741 2011-06-06 09:36:46Z mm $
@


1.19.2.9
log
@## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/243717
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ## r243717 | mm | 2012-11-30 22:38:42 +0000 (Fri, 30 Nov 2012) | 223 lines
## SVN ##
## SVN ## Merge ZFS feature flags support and related bugfixes:
## SVN ## 236884, 237001, 237119, 237458, 237972, 238113, 238391, 238422, 238926,
## SVN ## 238950, 238951, 239389, 239394, 239620, 239774, 239953, 239958, 239967,
## SVN ## 239968, 240063, 240133, 240153, 240303, 240345, 240415, 240955, 241655,
## SVN ## 243014, 243505, 243506
## SVN ##
## SVN ## MFC r236884:
## SVN ## Introduce "feature flags" for ZFS pools (bump SPA version to 5000).
## SVN ## Add first feature "com.delphix:async_destroy" (asynchronous destroy
## SVN ## of ZFS datasets).
## SVN ## Implement features support in ZFS boot code.
## SVN ##
## SVN ## Illumos revisions merged:
## SVN ## 13700:2889e2596bd6
## SVN ## 13701:1949b688d5fb
## SVN ## 2619 asynchronous destruction of ZFS file systems
## SVN ## 2747 SPA versioning with zfs feature flags
## SVN ##
## SVN ## References:
## SVN ##   https://www.illumos.org/issues/2619
## SVN ##   https://www.illumos.org/issues/2747
## SVN ##
## SVN ## MFC r237001:
## SVN ## Fix ZFS boot with pre-features pools (version <= 28) broken in r236884
## SVN ##
## SVN ## MFC r237119 [1]:
## SVN ## Do not remount ZFS dataset if changing canmount property to "on" and
## SVN ## dataset is already mounted.
## SVN ##
## SVN ## MFC r237458:
## SVN ## Import Illumos revision 13736:9f1d48e1681f
## SVN ## 2901 ZFS receive fails for exabyte sparse files
## SVN ##
## SVN ## References:
## SVN ##   https://www.illumos.org/issues/2901
## SVN ##
## SVN ## MFC r237972:
## SVN ## Expose scrub and resilver tunables.
## SVN ## This allows the user to tune the priority trade-off between scrub/resilver
## SVN ## and other ZFS I/O.
## SVN ##
## SVN ## MFC r238113 (pjd):
## SVN ## vdev_io_done stage is not used for ioctls.
## SVN ##
## SVN ## MFC r238391:
## SVN ## Change behavior introduced in r237119 to vendor solution
## SVN ##
## SVN ## References:
## SVN ##   https://www.illumos.org/issues/2883
## SVN ##
## SVN ## MFC r238422:
## SVN ## Merge illumos commit 13749:df4cd82e2b60
## SVN ##
## SVN ## 1796 "ZFS HOLD" should not be used when doing "ZFS SEND" froma read-only pool
## SVN ## 2871 support for __ZFS_POOL_RESTRICT used by ZFS test suite
## SVN ## 2903 zfs destroy -d does not work
## SVN ## 2957 zfs destroy -R/r sometimes fails when removing defer-destroyed snapshot
## SVN ##
## SVN ## References:
## SVN ##   https://www.illumos.org/issues/1796
## SVN ##   https://www.illumos.org/issues/2871
## SVN ##   https://www.illumos.org/issues/2903
## SVN ##   https://www.illumos.org/issues/2957
## SVN ##
## SVN ## MFC r238926:
## SVN ## Partial MFV (illumos-gate 13753:2aba784c276b)
## SVN ## 2762 zpool command should have better support for feature flags
## SVN ##
## SVN ## References:
## SVN ##   https://www.illumos.org/issues/2762
## SVN ##
## SVN ## MFC r238950:
## SVN ## Fix reporting of root pool upgrade notice.
## SVN ##
## SVN ## MFC r238951:
## SVN ## Fix wrong indent according to style(9)
## SVN ##
## SVN ## MFC r239389:
## SVN ## Backport fix for vendor issue #3085
## SVN ## 3085 zfs diff panics, then panics in a loop on booting
## SVN ##
## SVN ## References:
## SVN ##   https://www.illumos.org/issues/3085
## SVN ##
## SVN ## MFC r239394:
## SVN ## Update zfs(8) manpage with illumos version of "zfs diff"
## SVN ##
## SVN ## Illumos issue:
## SVN ##   2399 zfs manual page does not document use of "zfs diff"
## SVN ##
## SVN ## References:
## SVN ##   https://www.illumos.org/issues/2399
## SVN ##
## SVN ## MFC r239620 [2]:
## SVN ## Merge recent vendor changes:
## SVN ## 3086 unnecessarily setting DS_FLAG_INCONSISTENT on async destroyed datasets
## SVN ## 3090 vdev_reopen() during reguid causes vdev to be treated as corrupt
## SVN ## 3102 vdev_uberblock_load() and vdev_validate() may read the wrong label
## SVN ##
## SVN ## Referenes:
## SVN ##   https://www.illumos.org/issues/3086
## SVN ##   https://www.illumos.org/issues/3090
## SVN ##   https://www.illumos.org/issues/3102
## SVN ##
## SVN ## MFC r239774:
## SVN ## Merge recent vendor changes:
## SVN ## 3100 zvol rename fails with EBUSY when dirty
## SVN ## 3104 eliminate empty bpobjs
## SVN ## 3120 zinject hangs in zfsdev_ioctl() due to uninitialized zc
## SVN ##
## SVN ## References:
## SVN ##   https://www.illumos.org/issues/3100
## SVN ##   https://www.illumos.org/issues/3104
## SVN ##   https://www.illumos.org/issues/3120
## SVN ##
## SVN ## MFC r239953 (joel):
## SVN ## Mdoc fixes.
## SVN ##
## SVN ## MFC r239958 (joel):
## SVN ## Minor mdoc fixes.
## SVN ##
## SVN ## MFC r239967 (joel):
## SVN ## Mdoc fixes.
## SVN ##
## SVN ## MFC r239968 (joel):
## SVN ## Remove trailing whitespace.
## SVN ##
## SVN ## MFC r240063 (gjb):
## SVN ## Add myself to copyright sections, per CDDL license.
## SVN ##
## SVN ## MFC r240133:
## SVN ## Merge recent vendor changes and sync code:
## SVN ## 1862 incremental zfs receive fails for sparse file > 8PB
## SVN ## 3112 ztest does not honor ZFS_DEBUG
## SVN ## 3122 zfs destroy filesystem should prefetch blocks
## SVN ## 3129 'zpool reopen' restarts resilvers
## SVN ## 3130 ztest failure: Assertion failed:
## SVN ##        0 == dmu_objset_destroy(name, B_FALSE) (0x0 == 0x10)
## SVN ##
## SVN ## References:
## SVN ##   https://www.illumos.org/issues/1862
## SVN ##   https://www.illumos.org/issues/3112
## SVN ##   https://www.illumos.org/issues/3122
## SVN ##   https://www.illumos.org/issues/3129
## SVN ##   https://www.illumos.org/issues/3130
## SVN ##
## SVN ## MFC r240153 (gjb) [3]:
## SVN ## Typo fix and minor word swap.
## SVN ##
## SVN ## MFC r240303:
## SVN ## Add assfail() and assfail3() to the opensolaris module.
## SVN ## Remove obsoleted intermediate cddl/compat/opensolaris/sys/debug.h.
## SVN ##
## SVN ## MFC r240345 (avg):
## SVN ## zfs: fix sa_modify_attrs handling of variable-sized attributes
## SVN ##
## SVN ## - skip length_idx index for a replaced variable-sized attribute
## SVN ## - skip length_idx index for a removed variable-sized attribute
## SVN ## - also re-arranged code to make sure that length_idx is always
## SVN ##   incremented for variable-sized attributes
## SVN ## - additionally add an assertion that the number of actually produced
## SVN ##   attributes is the same as the expected number of resulting
## SVN ##   attributes
## SVN ##
## SVN ## MFC r240415:
## SVN ## Merge recent zfs vendor changes, sync code and adjust userland DEBUG.
## SVN ##
## SVN ## Illumos issued covered:
## SVN ## 1884 Empty "used" field for zfs *space commands
## SVN ## 3006 VERIFY[S,U,P] and ASSERT[S,U,P] frequently check if first argument
## SVN ##      is zero
## SVN ## 3028 zfs {group,user}space -n prints (null) instead of numeric GID/UID
## SVN ## 3048 zfs {user,group}space [-s|-S] is broken
## SVN ## 3049 zfs {user,group}space -t doesn't really filter the results
## SVN ## 3060 zfs {user,group}space -H output isn't tab-delimited
## SVN ## 3061 zfs {user,group}space -o doesn't use specified fields order
## SVN ## 3064 usr/src/cmd/zpool/zpool_main.c misspells "successful"
## SVN ## 3093 zfs {user,group}space's -i is noop
## SVN ## 3098 zfs userspace/groupspace fail without saying why when run as non-root
## SVN ##
## SVN ## References:
## SVN ##   https://www.illumos.org/issues/ + [issue_id]
## SVN ##
## SVN ## MFC r240955 (partial):
## SVN ## Merge recent vendor changes in ZFS.
## SVN ##
## SVN ## Illumos issued covered:
## SVN ## 3139 zdb dies when it tries to determine path of unlinked file
## SVN ## 3189 kernel panic in ZFS test suite during hotspare_onoffline_004_neg
## SVN ## 3208 moving zpool cross-endian results in incorrect user/group accounting
## SVN ##
## SVN ## References:
## SVN ##   https://www.illumos.org/issues/ + [issue_id]
## SVN ##
## SVN ## MFC r241655:
## SVN ## Add missing initialization for do_prefix.
## SVN ## Corrects porting error in r238391
## SVN ##
## SVN ## Vendor issue and changeset reference:
## SVN ## 2883 changing "canmount" property to "on" should not always remount dataset
## SVN ## https://www.illumos.org/issues/2883
## SVN ## Changeset 13743:95aba6e49b9f
## SVN ##
## SVN ## MFC r243014:
## SVN ## Move zpool-features manual page from section 5 to section 7
## SVN ## and fix references
## SVN ##
## SVN ## Reported by:	pluknet
## SVN ##
## SVN ## MFC r243505:
## SVN ## Illumos 13886:e3261d03efbf
## SVN ##
## SVN ## 3349 zpool upgrade -V bumps the on disk version number, but leaves
## SVN ##      the in core version
## SVN ##
## SVN ## References:
## SVN ##   https://www.illumos.org/issues/3349
## SVN ##
## SVN ## MFC r243506:
## SVN ## zfs sha256 checksum is missing in zfs.8 manpage
## SVN ##
## SVN ## PR:	kern/167905 [1], kern/170912 [2], kern/170914 [2], doc/171356 [3]
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ##
@
text
@d1 1
a1 1
# $FreeBSD: stable/8/sys/modules/zfs/Makefile 243717 2012-11-30 22:38:42Z mm $
a15 1
SRCS+=	fnvpair.c
@


1.19.2.10
log
@## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/252162
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
@
text
@d1 1
a1 1
# $FreeBSD: stable/8/sys/modules/zfs/Makefile 252162 2013-06-24 15:35:42Z smh $
a71 1
SRCS+=	trim_map.c
@


1.19.2.11
log
@## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/254705
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
@
text
@d1 1
a1 1
# $FreeBSD: stable/8/sys/modules/zfs/Makefile 254705 2013-08-23 14:18:24Z avg $
a91 2
CFLAGS+=	-include ${.CURDIR}/../../cddl/compat/opensolaris/sys/debug_compat.h

@


1.19.2.7.2.1
log
@SVN rev 232438 on 2012-03-03 06:15:13Z by kensmith

Copy stable/8 to releng/8.3 as part of 8.3-RELEASE release cycle.

Approved by:	re (implicit)
@
text
@@


1.19.2.7.2.2
log
@Switch importer
@
text
@d1 1
a1 1
# $FreeBSD: releng/8.3/sys/modules/zfs/Makefile 222741 2011-06-06 09:36:46Z mm $
@


1.19.2.6.2.1
log
@SVN rev 216617 on 2010-12-21 17:09:25Z by kensmith

Copy stable/8 to releng/8.2 in preparation for FreeBSD-8.2 release.

Approved by:	re (implicit)
@
text
@@


1.19.2.4.2.1
log
@SVN rev 209145 on 2010-06-14 02:09:06Z by kensmith

Copy stable/8 to releng/8.1 in preparation for 8.1-RC1.

Approved by:	re (implicit)
@
text
@@


1.19.2.2.2.1
log
@SVN rev 198460 on 2009-10-25 01:10:29Z by kensmith

Copy stable/8 to releng/8.0 as part of 8.0-RELEASE release procedure.

Approved by:	re (implicit)
@
text
@@


1.18
log
@SVN rev 192971 on 2009-05-28 08:18:12Z by kmacy

MFdevbranch 192944
 - add FreeBSD implementation of xdrmem_control needed by zfs
 - have zfs define xdr_ops using FreeBSD's definition
 - remove solaris xdr files from zfs compile
@
text
@a46 5
#.PATH:	${SUNW}/uts/common/rpc
#SRCS+=	opensolaris_xdr.c
#SRCS+=	opensolaris_xdr_array.c
#SRCS+=	opensolaris_xdr_mem.c

@


1.17
log
@SVN rev 192800 on 2009-05-26 08:21:59Z by trasz

MFp4 changes neccessary for NFSv4 ACLs support in ZFS.  This is mostly
about removing a few #ifdefs and providing compatibility wrappers and
VOP implementations to get and set an ACL; ZFS does ACL enforcement all
by itself.

Note that the VOPs are ifdefed out for now, so this change should be
a no-op.

Reviewed by:	pjd
@
text
@d47 4
a50 4
.PATH:	${SUNW}/uts/common/rpc
SRCS+=	opensolaris_xdr.c
SRCS+=	opensolaris_xdr_array.c
SRCS+=	opensolaris_xdr_mem.c
@


1.16
log
@SVN rev 191984 on 2009-05-11 04:18:58Z by kmacy

rename xdr support files to avoid conflicts when linking in to the kernel
@
text
@d19 1
@


1.15
log
@SVN rev 191934 on 2009-05-09 05:45:13Z by kmacy

fix atomic.S rename and vimage breakage

The latter was pointed out by Artem Belevich
@
text
@d47 3
a49 3
SRCS+=	xdr.c
SRCS+=	xdr_array.c
SRCS+=	xdr_mem.c
@


1.14
log
@SVN rev 191931 on 2009-05-09 01:45:55Z by kmacy

- rename atomic.S and crc32.c to avoid collisions when linking zfs in to the kernel
- update Makefile
- ifdef out acl_{alloc, free}, they aren't used by zfs and conflict with existing in-kernel routines
@
text
@a22 1
SRCS+=	opensolaris_misc.c
@


1.13
log
@SVN rev 185029 on 2008-11-17 20:49:29Z by pjd

Update ZFS from version 6 to 13 and bring some FreeBSD-specific changes.

This bring huge amount of changes, I'll enumerate only user-visible changes:

- Delegated Administration

	Allows regular users to perform ZFS operations, like file system
	creation, snapshot creation, etc.

- L2ARC

	Level 2 cache for ZFS - allows to use additional disks for cache.
	Huge performance improvements mostly for random read of mostly
	static content.

- slog

	Allow to use additional disks for ZFS Intent Log to speed up
	operations like fsync(2).

- vfs.zfs.super_owner

	Allows regular users to perform privileged operations on files stored
	on ZFS file systems owned by him. Very careful with this one.

- chflags(2)

	Not all the flags are supported. This still needs work.

- ZFSBoot

	Support to boot off of ZFS pool. Not finished, AFAIK.

	Submitted by:	dfr

- Snapshot properties

- New failure modes

	Before if write requested failed, system paniced. Now one
	can select from one of three failure modes:
	- panic - panic on write error
	- wait - wait for disk to reappear
	- continue - serve read requests if possible, block write requests

- Refquota, refreservation properties

	Just quota and reservation properties, but don't count space consumed
	by children file systems, clones and snapshots.

- Sparse volumes

	ZVOLs that don't reserve space in the pool.

- External attributes

	Compatible with extattr(2).

- NFSv4-ACLs

	Not sure about the status, might not be complete yet.

	Submitted by:	trasz

- Creation-time properties

- Regression tests for zpool(8) command.

Obtained from:	OpenSolaris
@
text
@d31 1
a31 1
SRCS+=	atomic.S
d54 1
a54 1
SRCS+=	crc32.c
@


1.12
log
@SVN rev 184700 on 2008-11-05 19:40:36Z by rodrigc

Merge latest DTrace changes from Perforce.

Approved by:	jb
@
text
@d15 2
d22 1
d39 1
@


1.11
log
@Add atomic operations for ZFS/sparc64.

Approved by:	core, pjd
Obtained from:	OpenSolaris (w/ adaptations)
MFC after:	2 weeks
@
text
@d81 1
@


1.10
log
@The sources covered by Sun's CDDL have been repo copied below the
src/cddl and src/sys/cddl directories per the core@@ decision following
the license review.

This change modifies the affected Makefiles to reference the sources
in their new location.
@
text
@d26 1
a26 1
.if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "ia64"
@


1.9
log
@"root" the include path so there is less duplication.
@
text
@d7 1
a7 1
SUNW=	${.CURDIR}/../../contrib/opensolaris
d16 1
a16 1
.PATH:	${.CURDIR}/../../compat/opensolaris/kern
d30 1
a30 1
.PATH:	${.CURDIR}/../../compat/opensolaris/kern
d73 1
a73 1
CFLAGS+=-I${.CURDIR}/../../compat/opensolaris
@


1.8
log
@Remove WARNS from here and compile with default kernel flags.
Switch off those warnings that ZFS sources do not pass.
@
text
@d7 3
a9 1
.PATH:	${.CURDIR}/../../contrib/opensolaris/common/acl
d11 1
a11 1
.PATH:	${.CURDIR}/../../contrib/opensolaris/common/avl
d13 1
a13 1
.PATH:	${.CURDIR}/../../contrib/opensolaris/common/nvpair
d27 1
a27 1
.PATH:	${.CURDIR}/../../contrib/opensolaris/common/atomic/${MACHINE_ARCH}
d34 1
a34 1
.PATH:	${.CURDIR}/../../contrib/opensolaris/uts/common/fs
d37 1
a37 1
.PATH:	${.CURDIR}/../../contrib/opensolaris/uts/common/os
d43 1
a43 1
.PATH:	${.CURDIR}/../../contrib/opensolaris/uts/common/rpc
d48 1
a48 1
.PATH:	${.CURDIR}/../../contrib/opensolaris/uts/common/zmod
d60 3
a62 3
.PATH:	${.CURDIR}/../../contrib/opensolaris/common/zfs
.include "${.CURDIR}/../../contrib/opensolaris/uts/common/Makefile.files"
.PATH:	${.CURDIR}/../../contrib/opensolaris/uts/common/fs/zfs
d74 3
a76 3
CFLAGS+=-I${.CURDIR}/../../contrib/opensolaris/uts/common/fs/zfs
CFLAGS+=-I${.CURDIR}/../../contrib/opensolaris/uts/common/zmod
CFLAGS+=-I${.CURDIR}/../../contrib/opensolaris/uts/common
d78 2
a79 2
CFLAGS+=-I${.CURDIR}/../../contrib/opensolaris/common/zfs
CFLAGS+=-I${.CURDIR}/../../contrib/opensolaris/common
@


1.7
log
@Remove _SOLARIS_C_SOURCE now that it doesn't do anything in FreeBSD
headers. All OpenSolaris compatibility comes via the set of specific
compatibility headers in src/compat/opensolaris and
src/sys/compat/opensolaris.
@
text
@a70 8
CWARNFLAGS=-Wall
CWARNFLAGS+=-Wno-unknown-pragmas
CWARNFLAGS+=-Wno-missing-braces
CWARNFLAGS+=-Wno-parentheses
CWARNFLAGS+=-Wno-uninitialized
CWARNFLAGS+=-Wno-unused
CWARNFLAGS+=-Wno-switch

a79 2
WARNS?=1

d84 14
@


1.6
log
@- Reduce number of atomic operations needed to be implemented in asm by
  implementing some of them using existing ones.
- Allow to compile ZFS on all archs and use atomic operations surrounded
  by global mutex on archs we don't have or can't have all atomic
  operations needed by ZFS.
@
text
@a78 2
CFLAGS+=-D_SOLARIS_C_SOURCE

@


1.6.2.1
log
@MFC. Step 2 of the big CDDL file move. Use the files in their new
locations. The next step will be to remove the files from their
old locations.
@
text
@d7 1
a7 1
.PATH:	${.CURDIR}/../../cddl/contrib/opensolaris/common/acl
d9 1
a9 1
.PATH:	${.CURDIR}/../../cddl/contrib/opensolaris/common/avl
d11 1
a11 1
.PATH:	${.CURDIR}/../../cddl/contrib/opensolaris/common/nvpair
d14 1
a14 1
.PATH:	${.CURDIR}/../../cddl/compat/opensolaris/kern
d25 1
a25 1
.PATH:	${.CURDIR}/../../cddl/contrib/opensolaris/common/atomic/${MACHINE_ARCH}
d28 1
a28 1
.PATH:	${.CURDIR}/../../cddl/compat/opensolaris/kern
d32 1
a32 1
.PATH:	${.CURDIR}/../../cddl/contrib/opensolaris/uts/common/fs
d35 1
a35 1
.PATH:	${.CURDIR}/../../cddl/contrib/opensolaris/uts/common/os
d41 1
a41 1
.PATH:	${.CURDIR}/../../cddl/contrib/opensolaris/uts/common/rpc
d46 1
a46 1
.PATH:	${.CURDIR}/../../cddl/contrib/opensolaris/uts/common/zmod
d58 3
a60 3
.PATH:	${.CURDIR}/../../cddl/contrib/opensolaris/common/zfs
.include "${.CURDIR}/../../cddl/contrib/opensolaris/uts/common/Makefile.files"
.PATH:	${.CURDIR}/../../cddl/contrib/opensolaris/uts/common/fs/zfs
d81 4
a84 4
CFLAGS+=-I${.CURDIR}/../../cddl/compat/opensolaris
CFLAGS+=-I${.CURDIR}/../../cddl/contrib/opensolaris/uts/common/fs/zfs
CFLAGS+=-I${.CURDIR}/../../cddl/contrib/opensolaris/uts/common/zmod
CFLAGS+=-I${.CURDIR}/../../cddl/contrib/opensolaris/uts/common
d86 2
a87 2
CFLAGS+=-I${.CURDIR}/../../cddl/contrib/opensolaris/common/zfs
CFLAGS+=-I${.CURDIR}/../../cddl/contrib/opensolaris/common
@


1.6.2.2
log
@MFC: Makefile 1.11; atomic.S 1.1

Add atomic operations for ZFS/sparc64.
@
text
@d24 1
a24 1
.if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "ia64" || ${MACHINE_ARCH} == "sparc64"
@


1.6.2.3
log
@SVN rev 182231 on 2008-08-27 04:41:15Z by jb

MFC

DTrace support.

Note that this defaults the 'make buildkernel' to build with CTF data so
that the release kernel and modules are DTrace-able.
@
text
@d7 1
a7 3
SUNW=	${.CURDIR}/../../cddl/contrib/opensolaris

.PATH:	${SUNW}/common/acl
d9 1
a9 1
.PATH:	${SUNW}/common/avl
d11 1
a11 1
.PATH:	${SUNW}/common/nvpair
d25 1
a25 1
.PATH:	${SUNW}/common/atomic/${MACHINE_ARCH}
d32 1
a32 1
.PATH:	${SUNW}/uts/common/fs
d35 1
a35 1
.PATH:	${SUNW}/uts/common/os
d41 1
a41 1
.PATH:	${SUNW}/uts/common/rpc
d46 1
a46 1
.PATH:	${SUNW}/uts/common/zmod
d58 3
a60 3
.PATH:	${SUNW}/common/zfs
.include "${SUNW}/uts/common/Makefile.files"
.PATH:	${SUNW}/uts/common/fs/zfs
d71 10
d82 3
a84 3
CFLAGS+=-I${SUNW}/uts/common/fs/zfs
CFLAGS+=-I${SUNW}/uts/common/zmod
CFLAGS+=-I${SUNW}/uts/common
d86 2
a87 2
CFLAGS+=-I${SUNW}/common/zfs
CFLAGS+=-I${SUNW}/common
d89 2
a90 1
CFLAGS+=-DBUILDING_ZFS
a95 14

CWARNFLAGS+=-Wno-unknown-pragmas
CWARNFLAGS+=-Wno-missing-prototypes
CWARNFLAGS+=-Wno-undef
CWARNFLAGS+=-Wno-strict-prototypes
CWARNFLAGS+=-Wno-cast-qual
CWARNFLAGS+=-Wno-parentheses
CWARNFLAGS+=-Wno-redundant-decls
CWARNFLAGS+=-Wno-missing-braces
CWARNFLAGS+=-Wno-uninitialized
CWARNFLAGS+=-Wno-unused
CWARNFLAGS+=-Wno-inline
CWARNFLAGS+=-Wno-switch
CWARNFLAGS+=-Wno-pointer-arith
@


1.6.2.4
log
@SVN rev 192498 on 2009-05-20 23:34:59Z by kmacy

MFC ZFS version 13. This includes the changes by pjd (see original message
below) as well as the following:

- the recurring deadlock was fixed by deferring vinactive to a dedicated thread

- zfs boot for all pool types now works
      Submitted by: dfr

- kmem now goes up to 512GB so arc is now limited by physmem

- the arc now experiences backpressure from the vm (which can be too
much - but this allows ZFS to work without any tunables on amd64)

- frequently recurring LOR in the ARC fixed

- zfs send coredump fix

- fixes for various PRs

Supported by: Barrett Lyon, BitGravity

Revision 185029 - (view) (annotate) - [select for diffs]
Modified Mon Nov 17 20:49:29 2008 UTC (6 months ago) by pjd
File length: 38244 byte(s)
Diff to previous 177698

Update ZFS from version 6 to 13 and bring some FreeBSD-specific changes.

This bring huge amount of changes, I'll enumerate only user-visible changes:

- Delegated Administration

       Allows regular users to perform ZFS operations, like file system
       creation, snapshot creation, etc.

- L2ARC

       Level 2 cache for ZFS - allows to use additional disks for cache.
       Huge performance improvements mostly for random read of mostly
       static content.

- slog

       Allow to use additional disks for ZFS Intent Log to speed up
       operations like fsync(2).

- vfs.zfs.super_owner

       Allows regular users to perform privileged operations on files stored
       on ZFS file systems owned by him. Very careful with this one.

- chflags(2)

       Not all the flags are supported. This still needs work.

- ZFSBoot

       Support to boot off of ZFS pool. Not finished, AFAIK.

       Submitted by:   dfr

- Snapshot properties

- New failure modes

       Before if write requested failed, system paniced. Now one
       can select from one of three failure modes:

       Before if write requested failed, system paniced. Now one
       can select from one of three failure modes:
       - panic - panic on write error
       - wait - wait for disk to reappear
       - continue - serve read requests if possible, block write requests

- Refquota, refreservation properties

       Just quota and reservation properties, but don't count space consumed
       by children file systems, clones and snapshots.

 - Sparse volumes

       ZVOLs that don't reserve space in the pool.

 - External attributes

       Compatible with extattr(2).

 - NFSv4-ACLs

       Not sure about the status, might not be complete yet.

       Submitted by:   trasz

 - Creation-time properties

 - Regression tests for zpool(8) command.

 Obtained from:        OpenSolaris
@
text
@a14 2
.PATH:	${.CURDIR}/../../cddl/contrib/opensolaris/common/unicode
SRCS+=	u8_textprep.c
d20 1
a20 1
SRCS+=	opensolaris_lookup.c
d28 1
a28 1
SRCS+=	opensolaris_atomic.S
a35 1
SRCS+=	vnode.c
d44 3
a46 3
SRCS+=	opensolaris_xdr.c
SRCS+=	opensolaris_xdr_array.c
SRCS+=	opensolaris_xdr_mem.c
d50 1
a50 1
SRCS+=	opensolaris_crc32.c
@


1.6.2.5
log
@SVN rev 201633 on 2010-01-06 08:18:49Z by netchild

MFC several ZFS related commits:
 - taskq changes
 - fixes for race conditions
 - locking fixes
 - bug fixes
 - ...

r185310:
---snip---
    Remove unused variable.

    Found with:	Coverity Prevent(tm)
    CID:	3669,3671
---snip---

r185319:
---snip---
    Fix locking (file descriptor table and Giant around VFS).

    Most submitted by:	kib
    Reviewed by:	kib
---snip---

r192689:
---snip---
    Fix comment.
---snip---

r193110:
---snip---
	work around snapshot shutdown race reported by Henri Hennebert
---snip---

r193440:
---snip---
    Support shared vnode locks for write operations when the offset is
    provided on filesystems that support it.  This really improves mysql
    + innodb performance on ZFS.

    Reviewed by:	jhb, kmacy, jeffr
---snip---
ATTENTION: this commit to releng7 does not allow shared vnode locks
(there are some VFS changes needed before it can be enabled), it only
provides the infrastructure and serves mostly as a diff reduction in
the ZFS code.
A comment has been added to the locking part to explain why no shared
locks are used.

r195627:
---snip---
    In nvpair_native_embedded_array(), meaningless pointers are zeroed.
    The programmer was aware that alignment was not guaranteed in the
    packed structure and used bzero() to NULL out the pointers.
    However, on ia64, the compiler is quite agressive in finding ILP
    and calls to bzero() are often replaced by simple assignments (i.e.
    stores). Especially when the width or size in question corresponds
    with a store instruction (i.e. st1, st2, st4 or st8).

    The problem here is not a compiler bug. The address of the memory
    to zero-out was given by '&packed->nvl_priv' and given the type of
    the 'packed' pointer the compiler could assume proper alignment for
    the replacement of bzero() with an 8-byte wide store to be valid.
    The problem is with the programmer. The programmer knew that the
    address did not have the alignment guarantees needed for a regular
    assignment, but failed to inform the compiler of that fact. In
    fact, the programmer told the compiler the opposite: alignment is
    guaranteed.

    The fix is to avoid using a pointer of type "nvlist_t *" and
    instead use a "char *" pointer as the basis for calculating the
    address. This tells the compiler that only 1-byte alignment can
    be assumed and the compiler will either keep the bzero() call
    or instead replace it with a sequence of byte-wise stores. Both
    are valid.
---snip---

r195822:
---snip---
    Fix extattr_list_file(2) on ZFS in case the attribute directory
    doesn't exist and user doesn't have write access to the file.
    Without this fix, it returns bogus value instead of 0.  For some
    reason this didn't manifest on my kernel compiled with -O0.

    PR:			kern/136601
    Submitted by:	Jaakko Heinonen <jh at saunalahti dot fi>
---snip---

r195909
---snip---
    We don't support ephemeral IDs in FreeBSD and without this fix ZFS can
    panic when in zfs_fuid_create_cred() when userid is negative. It is
    converted to unsigned value which makes IS_EPHEMERAL() macro to
    incorrectly report that this is ephemeral ID. The most reasonable
    solution for now is to always report that the given ID is not ephemeral.

    PR:			kern/132337
    Submitted by:	Matthew West <freebsd@@r.zeeb.org>
    Tested by:		Thomas Backman <serenity@@exscape.org>, Michael Reifenberger <mike@@reifenberger.com>
---snip---

r196291:
---snip---
    - Fix a race where /dev/zfs control device is created before ZFS is fully
      initialized. Also destroy /dev/zfs before doing other deinitializations.
    - Initialization through taskq is no longer needed and there is a race
      where one of the zpool/zfs command loads zfs.ko and tries to do some work
      immediately, but /dev/zfs is not there yet.

    Reported by:	pav
---snip---

r196269:
---snip---
    Fix misalignment in nvpair_native_embedded() caused by the compiler
    replacing the bzero(). See also revision 195627, which fixed the
    misalignment in nvpair_native_embedded_array().
---snip---

r196295:
---snip---
    Remove OpenSolaris taskq port (it performs very poorly in our kernel) and
    replace it with wrappers around our taskqueue(9).
    To make it possible implement taskqueue_member() function which returns 1
    if the given thread was created by the given taskqueue.
---snip---
The taskqueue_member() function is different due to kproc/kthread changes
in releng8 and head, the function was...
Revieved by:	jhb

r196297:
---snip---
    Fix panic in zfs recv code. The last vnode (mountpoint's vnode) can have
    0 usecount.

    Reported by:	Thomas Backman <serenity@@exscape.org>
---snip---

r196299:
---snip---
    - We need to recycle vnode instead of freeing znode.

    Submitted by:	avg

    - Add missing vnode interlock unlock.
    - Remove redundant znode locking.
---snip---

r196301:
---snip---
    If z_buf is NULL, we should free znode immediately.

    Noticed by:	avg
---snip---

r196307:
---snip---
    Manage asynchronous vnode release just like Solaris.

    Discussed with:	kmacy
---snip---
@
text
@a24 1
SRCS+=	opensolaris_taskq.c
d44 1
@


1.6.2.6
log
@Switch importer
@
text
@d1 1
a1 1
# $FreeBSD: stable/7/sys/modules/zfs/Makefile 201633 2010-01-06 08:18:49Z netchild $
@


1.6.2.5.4.1
log
@SVN rev 216618 on 2010-12-21 17:10:29Z by kensmith

Copy stable/7 to releng/7.4 in preparation for FreeBSD-7.4 release.

Approved by:	re (implicit)
@
text
@@


1.6.2.5.4.2
log
@Switch importer
@
text
@d1 1
a1 1
# $FreeBSD: releng/7.4/sys/modules/zfs/Makefile 201633 2010-01-06 08:18:49Z netchild $
@


1.6.2.5.2.1
log
@SVN rev 203736 on 2010-02-10 00:26:20Z by kensmith

Copy stable/7 to releng/7.3 as part of the 7.3-RELEASE process.

Approved by:	re (implicit)
@
text
@@


1.6.2.3.4.1
log
@SVN rev 191087 on 2009-04-15 03:14:26Z by kensmith

Create releng/7.2 from stable/7 in preparation for 7.2-RELEASE.

Approved by:	re (implicit)
@
text
@@


1.6.2.3.2.1
log
@SVN rev 185281 on 2008-11-25 02:59:29Z by kensmith

Create releng/7.1 in preparation for moving into RC phase of 7.1 release
cycle.

Approved by:	re (implicit)
@
text
@@


1.5
log
@FreeBSD's namecache works quite well with ZFS, so remove DNLC.
@
text
@d24 1
d27 4
@


1.4
log
@MFp4: Now that ZFS can use FreeBSD's namecache, turn it off by default and
turn off DNLC, but don't remove DNLC yet just in case.
@
text
@a27 1
SRCS+=	dnlc.c
@


1.3
log
@MFp4: Synchronize with recent OpenSolaris changes.
@
text
@d64 3
@


1.2
log
@Move atomic.S files to directories that better fit OpenSolaris directory
layout.
@
text
@d18 1
@


1.1
log
@Add Makefile for zfs.ko kernel module.
@
text
@d23 1
a23 1
.PATH:	${.CURDIR}/../../contrib/opensolaris/uts/common/arch/${MACHINE_ARCH}
@

