Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 28 Aug 2013 10:41:22 +0300
From:      Andriy Gapon <avg@FreeBSD.org>
To:        d@delphij.net
Cc:        Davide Italiano <davide@FreeBSD.org>, src-committers@FreeBSD.org, svn-src-all@FreeBSD.org, Xin LI <delphij@FreeBSD.org>, svn-src-head@FreeBSD.org, Xin Li <delphij@delphij.net>
Subject:   Re: svn commit: r254585 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs
Message-ID:  <521DA9A2.4050003@FreeBSD.org>
In-Reply-To: <521D4C41.3060208@delphij.net>
References:  <201308202231.r7KMVERi068300@svn.freebsd.org> <20130825221517.GM24767@caravan.chchile.org> <521B75CE.70103@FreeBSD.org> <521BDEAC.9080909@delphij.net> <521C5CAC.2060400@FreeBSD.org> <CACYV=-G0i3%2BU3ubWnPSGQpEvKsuJShYJZOMvKQnjBA1aLftJsA@mail.gmail.com> <521D4C41.3060208@delphij.net>

next in thread | previous in thread | raw e-mail | index | archive | help
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



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