Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 12 Aug 2016 01:52:02 +0300
From:      Slawa Olhovchenkov <slw@zxy.spb.ru>
To:        Glen Barber <gjb@FreeBSD.org>
Cc:        Andriy Gapon <avg@FreeBSD.org>, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject:   Re: svn commit: r303970 - in stable/11/sys/cddl: compat/opensolaris/sys contrib/opensolaris/uts/common/fs/zfs contrib/opensolaris/uts/common/fs/zfs/sys
Message-ID:  <20160811225202.GI8192@zxy.spb.ru>
In-Reply-To: <20160811223637.GE51184@FreeBSD.org>
References:  <201608112048.u7BKm4OH076291@repo.freebsd.org> <20160811223331.GF22212@zxy.spb.ru> <20160811223637.GE51184@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Aug 11, 2016 at 10:36:37PM +0000, Glen Barber wrote:

> On Fri, Aug 12, 2016 at 01:33:31AM +0300, Slawa Olhovchenkov wrote:
> > On Thu, Aug 11, 2016 at 08:48:04PM +0000, Andriy Gapon wrote:
> > 
> > > Author: avg
> > > Date: Thu Aug 11 20:48:03 2016
> > > New Revision: 303970
> > > URL: https://svnweb.freebsd.org/changeset/base/303970
> > > 
> > > Log:
> > >   MFC r303763,303791,303869: zfs: honour and make use of vfs vnode locking protocol
> > >   
> > >   ZFS POSIX Layer is originally written for Solaris VFS which is very
> > >   different from FreeBSD VFS.  Most importantly many things that FreeBSD VFS
> > >   manages on behalf of all filesystems are implemented in ZPL in a different
> > >   way.
> > >   Thus, ZPL contains code that is redundant on FreeBSD or duplicates VFS
> > >   functionality or, in the worst cases, badly interacts / interferes
> > >   with VFS.
> > >   
> > >   The most prominent problem is a deadlock caused by the lock order reversal
> > >   of vnode locks that may happen with concurrent zfs_rename() and lookup().
> > >   The deadlock is a result of zfs_rename() not observing the vnode locking
> > >   contract expected by VFS.
> > >   
> > >   This commit removes all ZPL internal locking that protects parent-child
> > >   relationships of filesystem nodes.  These relationships are protected
> > >   by vnode locks and the code is changed to take advantage of that fact
> > >   and to properly interact with VFS.
> > >   
> > >   Removal of the internal locking allowed all ZPL dmu_tx_assign calls to
> > >   use TXG_WAIT mode.
> > >   
> > >   Another victim, disputable perhaps, is ZFS support for filesystems with
> > >   mixed case sensitivity.  That support is not provided by the OS anyway,
> > >   so in ZFS it was a buch of dead code.
> > >   
> > >   To do:
> > >   - replace ZFS_ENTER mechanism with VFS managed / visible mechanism
> > >   - replace zfs_zget with zfs_vget[f] as much as possible
> > >   - get rid of not really useful now zfs_freebsd_* adapters
> > >   - more cleanups of unneeded / unused code
> > >   - fix / replace .zfs support
> > 
> > MFC to 10.x/9.x planed?
> > 
> 
> As I understand it, this does not affect stable/10.

Sure?
I think ZFS/VFS layers don't change between 9.x and 11.x



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