Date: Fri, 21 Aug 2015 11:33:34 +0300 From: Andriy Gapon <avg@FreeBSD.org> To: src-committers@FreeBSD.org, svn-src-all@FreeBSD.org, svn-src-head@FreeBSD.org Subject: Re: svn commit: r286985 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs Message-ID: <55D6E25E.5030007@FreeBSD.org> In-Reply-To: <201508210817.t7L8Hj26043731@repo.freebsd.org> References: <201508210817.t7L8Hj26043731@repo.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 21/08/2015 11:17, Andriy Gapon wrote: > Author: avg > Date: Fri Aug 21 08:17:44 2015 > New Revision: 286985 > URL: https://svnweb.freebsd.org/changeset/base/286985 > > Log: > try to fix lor between z_teardown_lock and spa_namespace_lock > > The lock order reversal and a resulting deadlock were introduced > in r285021 / D2865. The problem is that zfs_register_callbacks() calls > dsl_prop_get_integer() that has to acquire spa_namespace_lock. > At the same time, spa_config_sync() is called with spa_namespace_lock > held and then it performs ZFS vnode operations that acquire > z_teardown_lock in the reader mode. > > So, fix the problem by using dsl_prop_get_int_ds() instead of > dsl_prop_get_integer(). The former does not need to look up > the pool and the dataset by name. > > Reported by: many > Reviewed by: delphij > Tested by: delphij, Jens Schweikhardt <schweikh@schweikhardt.net> > MFC after: 5 days > X-MFC with: r285021 Differential Revision: https://reviews.freebsd.org/D3281 -- Andriy Gapon
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?55D6E25E.5030007>