On Fri, Aug 05, 2016 at 06:23:06AM +0000, Andriy Gapon wrote:
> Author: avg
> Date: Fri Aug  5 06:23:06 2016
> New Revision: 303763
> URL: https://svnweb.freebsd.org/changeset/base/303763
> 
> Log:
>   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
>   
>   PR:         209158
>   Reported by:        many
>   Tested by:  many (thank you all!)
>   MFC after:  5 days
>   Sponsored by:       HybridCluster / ClusterHQ
>   Differential Revision: https://reviews.freebsd.org/D6533
> 

Thank you very much for working on this.

Glen

Attachment: signature.asc
Description: PGP signature

Reply via email to