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>