From owner-cvs-src-old@FreeBSD.ORG Thu Jan 7 09:38:16 2010 Return-Path: Delivered-To: cvs-src-old@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8E45C1065672 for ; Thu, 7 Jan 2010 09:38:16 +0000 (UTC) (envelope-from netchild@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 776EE8FC08 for ; Thu, 7 Jan 2010 09:38:16 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o079cGVE038995 for ; Thu, 7 Jan 2010 09:38:16 GMT (envelope-from netchild@repoman.freebsd.org) Received: (from svn2cvs@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o079cGjp038994 for cvs-src-old@freebsd.org; Thu, 7 Jan 2010 09:38:16 GMT (envelope-from netchild@repoman.freebsd.org) Message-Id: <201001070938.o079cGjp038994@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: svn2cvs set sender to netchild@repoman.freebsd.org using -f From: Alexander Leidinger Date: Thu, 7 Jan 2010 09:37:59 +0000 (UTC) To: cvs-src-old@freebsd.org X-FreeBSD-CVS-Branch: RELENG_7 Subject: cvs commit: src/sys/cddl/compat/opensolaris/sys vnode.h src/sys/cddl/contrib/opensolaris/uts/common/fs gfs.c src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs dmu_object.c dmu_send.c dnode.c zfs_ctldir.c zfs_vfsops.c zfs_vnops.c zfs_znode.c zil.c src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys ... X-BeenThere: cvs-src-old@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: **OBSOLETE** CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 Jan 2010 09:38:16 -0000 netchild 2010-01-07 09:37:59 UTC FreeBSD src repository Modified files: (Branch: RELENG_7) sys/cddl/compat/opensolaris/sys vnode.h sys/cddl/contrib/opensolaris/uts/common/fs gfs.c sys/cddl/contrib/opensolaris/uts/common/fs/zfs dmu_object.c dmu_send.c dnode.c zfs_ctldir.c zfs_vfsops.c zfs_vnops.c zfs_znode.c zil.c sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys dmu.h zfs_znode.h zil.h sys/cddl/contrib/opensolaris/uts/common/sys vnode.h Log: SVN rev 201723 on 2010-01-07 09:37:59Z by netchild MFC several ZFS related commits: r197459: ---snip--- Before calling vflush(FORCECLOSE) mark file system as unmounted so the following vnops will fail. This is very important, because without this change vnode could be reclaimed at any point, even if we increased usecount. The only way to ensure that vnode won't be reclaimed was to lock it, which would be very hard to do in ZFS without changing a lot of code. With this change simply increasing usecount is enough to be sure vnode won't be reclaimed from under us. To be precise it can still be reclaimed but we won't be able to see it, because every try to enter ZFS through VFS will result in EIO. The only function that cannot return EIO, because it is needed for vflush() is zfs_root(). Introduce ZFS_ENTER_NOERROR() macro that only locks z_teardown_lock and never returns EIO. ---snip--- r197512: ---snip--- - Don't depend on value returned by gfs_*_inactive(), it doesn't work well with forced unmounts when GFS vnodes are referenced. - Make other preparations to GFS for forced unmounts. PR: kern/139062 Reported by: trasz ---snip--- r197513: ---snip--- Use traverse() function to find and return mount point's vnode instead of cov ered vnode when snapshot is already mounted. ---snip--- r197513: ---snip--- Handle cases where virtual (GFS) vnodes are referenced when doing forced unmount. In that case we cannot depend on the proper order of invalidating vnodes, so we have to free resources when we have a chance. PR: kern/139062 Reported by: trasz ---snip--- r197683: ---snip--- Return EOPNOTSUPP instead of EINVAL when doing chflags(2) over an old format ZFS, as defined in the manual page. Submitted by: pjd (response of my original patch but bugs are mine) ---snip--- r198703: ---snip--- - zfs_zaccess() can handle VAPPEND too, so map V_APPEND to VAPPEND and call zfs_access() instead of vaccess() in this case as well. - If VADMIN is specified with another V* flag (unlikely) call both zfs_access() and vaccess() after spliting V* flags. This fixes "dirtying snapshot!" panic. PR: kern/139806 Reported by: Carl Chave In co-operation with: jh ---snip--- While I'm here: fix two comments regarding the members of vop_access_args to comply what is in RELENG_7. r199156: ---snip--- Avoid passing invalid mountpoint to getnewvnode(). Reported by: rwatson Tested by: rwatson ---snip--- r200724: ---snip--- Apply fix Solaris bug 6462803 zfs snapshot -r failed because filesystem was busy. (onnv-gate revision 8989) Submitted by: mm Approved by: pjd ---snip--- r200726: ---snip--- Apply fix for Solaris bug 6801979: zfs recv can fail with E2BIG (onnv revision 8986) Requested by: mm Submitted by: pjd Obtained from: OpenSolaris ---snip--- r200727 (following is the corrected commit log): ---snip--- Apply fix for Solaris bug 6764159: restore_object() makes a call that can block while having a tx open but not yet committed (onnv revision 7994) Submitted by: mm Obtained from: OpenSolaris ---snip--- Revision Changes Path 1.6.2.4 +2 -0 src/sys/cddl/compat/opensolaris/sys/vnode.h 1.5.2.5 +5 -13 src/sys/cddl/contrib/opensolaris/uts/common/fs/gfs.c 1.2.2.3 +35 -5 src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_object.c 1.3.2.4 +24 -29 src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c 1.3.2.4 +12 -35 src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c 1.3.2.3 +2 -2 src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu.h 1.3.2.6 +4 -0 src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h 1.2.2.3 +8 -2 src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zil.h 1.8.2.6 +27 -16 src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c 1.14.2.6 +13 -5 src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c 1.31.2.9 +26 -10 src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c 1.15.2.6 +18 -21 src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c 1.4.2.4 +36 -21 src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c 1.3.2.4 +0 -1 src/sys/cddl/contrib/opensolaris/uts/common/sys/vnode.h