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. Glen
signature.asc
Description: PGP signature