From owner-svn-src-head@FreeBSD.ORG Wed Aug 28 07:42:16 2013 Return-Path: Delivered-To: svn-src-head@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 723E6924; Wed, 28 Aug 2013 07:42:16 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from citadel.icyb.net.ua (citadel.icyb.net.ua [212.40.38.140]) by mx1.freebsd.org (Postfix) with ESMTP id DA3C12250; Wed, 28 Aug 2013 07:42:14 +0000 (UTC) Received: from porto.starpoint.kiev.ua (porto-e.starpoint.kiev.ua [212.40.38.100]) by citadel.icyb.net.ua (8.8.8p3/ICyb-2.3exp) with ESMTP id KAA04308; Wed, 28 Aug 2013 10:41:59 +0300 (EEST) (envelope-from avg@FreeBSD.org) Received: from localhost ([127.0.0.1]) by porto.starpoint.kiev.ua with esmtp (Exim 4.34 (FreeBSD)) id 1VEaO6-000O45-Pp; Wed, 28 Aug 2013 10:41:58 +0300 Message-ID: <521DA9A2.4050003@FreeBSD.org> Date: Wed, 28 Aug 2013 10:41:22 +0300 From: Andriy Gapon User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:17.0) Gecko/20130810 Thunderbird/17.0.8 MIME-Version: 1.0 To: d@delphij.net Subject: Re: svn commit: r254585 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs References: <201308202231.r7KMVERi068300@svn.freebsd.org> <20130825221517.GM24767@caravan.chchile.org> <521B75CE.70103@FreeBSD.org> <521BDEAC.9080909@delphij.net> <521C5CAC.2060400@FreeBSD.org> <521D4C41.3060208@delphij.net> In-Reply-To: <521D4C41.3060208@delphij.net> X-Enigmail-Version: 1.5.1 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: Davide Italiano , src-committers@FreeBSD.org, svn-src-all@FreeBSD.org, Xin LI , svn-src-head@FreeBSD.org, Xin Li X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 Aug 2013 07:42:16 -0000 on 28/08/2013 04:02 Xin Li said the following: > I'm not sure that this is right. Now we have: > > tdzp = VTOZ(tdvp); > ZFS_VERIFY_ZP(tdzp); > zfsvfs = tdzp->z_zfsvfs; > ZFS_ENTER(zfsvfs); // tdzp's z_zfsvfs entered > zilog = zfsvfs->z_log; > sdzp = VTOZ(sdvp); > ZFS_VERIFY_ZP(sdzp); // (*) > > Note that in the (*) step, when sdzp is invalid and sdzp have > different z_zfsvfs than tdzp (for instance when the node is in the > snapshot directory; the code later would test this), we could end up > with ZFS_EXIT()'ing the wrong z_zfsvfs. The v_vfsp / v_mount check should be prior to any of this and should ensure that all the vnodes have the same z_zfsvfs. -- Andriy Gapon