Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 5 Aug 2016 15:53:52 +0000
From:      Glen Barber <gjb@FreeBSD.org>
To:        Andriy Gapon <avg@FreeBSD.org>
Cc:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r303763 - in head/sys/cddl: compat/opensolaris/sys contrib/opensolaris/uts/common/fs/zfs contrib/opensolaris/uts/common/fs/zfs/sys
Message-ID:  <20160805155352.GO43509@FreeBSD.org>
In-Reply-To: <201608050623.u756N695018889@repo.freebsd.org>
References:  <201608050623.u756N695018889@repo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help

--nb8zVy0QMK3AA1xu
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

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
>=20
> Log:
>   zfs: honour and make use of vfs vnode locking protocol
>  =20
>   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 differ=
ent
>   way.
>   Thus, ZPL contains code that is redundant on FreeBSD or duplicates VFS
>   functionality or, in the worst cases, badly interacts / interferes
>   with VFS.
>  =20
>   The most prominent problem is a deadlock caused by the lock order rever=
sal
>   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.
>  =20
>   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.
>  =20
>   Removal of the internal locking allowed all ZPL dmu_tx_assign calls to
>   use TXG_WAIT mode.
>  =20
>   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.
>  =20
>   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
>  =20
>   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
>=20

Thank you very much for working on this.

Glen


--nb8zVy0QMK3AA1xu
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBCAAGBQJXpLaQAAoJEAMUWKVHj+KT/aEP/1F1VHNqBotHGGTixpiZF9PM
1ptunhtBDZ6ypcUCmn5JpbMXZLdr7TafWn3GAERrnhhoq8Sfj7LKuKioO/QjBBbq
b20FtOqVETiAxdv2bEPVx4Crq7QcnGk1/xXVXfiTAXsRbqx4oZ90KfC3mE5oAJ+c
k79IzhJzIGYYqZShQadIcBP7grcI5q8NwxZ0N6XL2Xoc9r67885J0MD14XG9T/Mc
ztrEl8P4EVPh01uF55ZED5bRUkDU8HxJ8yWGTZooAzhgF8t1wEZJ+F79rxb+XNDI
3EAgzzQeyaKuXnQDcu3nQHw08exbzIjmW7aN7JhcSYMP3J1T+AJNR11QlSUWA88W
fKPA4tSKPrsxTarsOJ2O+kibxBTIlVi3lq8ZHX6bhe093MZruWH/efT0HAOCHDdG
T2ZwBCAt8+HRyKKbdMWASBiiJdyt0VZM4RIM7CWoDuGlJ/eoRtXJpIxU/CbG+Ojg
ASZETRlNFrNCsQH6DOP7kZcrNYvOtZYTHicdzg1ybTDu9Dr4n+wvfqyfcLNgNF/a
lp5szum8+yN4EBNgvyaQyvGiEWHLrhPpiRew1dxO4AGLNSIAteGmB1oT0uBz0cvH
SvKh4JRSedy9qb5D6Ki5T9qSZX1Cvu4AjlAJMyZ2liEfDTIRUB3oHExejCnM/PfU
XjgJ8y//gn10w+5C57sk
=2aYa
-----END PGP SIGNATURE-----

--nb8zVy0QMK3AA1xu--



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