Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 25 Apr 2006 12:22:53 -0400
From:      Kris Kennaway <kris@obsecurity.org>
To:        Kostik Belousov <kostikbel@gmail.com>
Cc:        stable@freebsd.org, Kris Kennaway <kris@obsecurity.org>, Dmitry Morozovsky <marck@rinet.ru>
Subject:   Re: fsck_ufs locked in snaplk
Message-ID:  <20060425162252.GA54244@xor.obsecurity.org>
In-Reply-To: <20060425153909.GE1446@deviant.kiev.zoral.com.ua>
References:  <20060425001751.S44618@woozle.rinet.ru> <20060424202859.GA18457@xor.obsecurity.org> <20060425004405.G44618@woozle.rinet.ru> <20060424205026.GA18844@xor.obsecurity.org> <20060425134418.J57625@woozle.rinet.ru> <20060425080932.1rv9hq0rcws4wc84@www.wolves.k12.mo.us> <20060425133532.GD1446@deviant.kiev.zoral.com.ua> <20060425095610.ibv24kg1kw00s040@www.wolves.k12.mo.us> <20060425185741.C71240@woozle.rinet.ru> <20060425153909.GE1446@deviant.kiev.zoral.com.ua>

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

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

On Tue, Apr 25, 2006 at 06:39:09PM +0300, Kostik Belousov wrote:

> Obviously, revisions 1.78, 1.79 of the sys/ufs/ufs/ufs_quota.c
> shall be MFCed. Try this patch (note, I does not tested it):

WTF, I could have sworn I merged that!  Yes, this patch is needed.=20
However, I don't think it's the cause of runtime deadlocks.

Kris

> Index: sys/ufs/ufs/ufs_quota.c
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> RCS file: /usr/local/arch/ncvs/src/sys/ufs/ufs/ufs_quota.c,v
> retrieving revision 1.77
> retrieving revision 1.79
> diff -u -r1.77 -r1.79
> --- sys/ufs/ufs/ufs_quota.c	9 Jan 2006 20:42:19 -0000	1.77
> +++ sys/ufs/ufs/ufs_quota.c	12 Feb 2006 13:20:06 -0000	1.79
> @@ -429,8 +429,9 @@
>  		quotaoff(td, mp, type);
>  	ump->um_qflags[type] |=3D QTF_OPENING;
>  	mp->mnt_flag |=3D MNT_QUOTA;
> -	ASSERT_VOP_LOCKED(vp, "quotaon");
> +	vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td);
>  	vp->v_vflag |=3D VV_SYSTEM;
> +	VOP_UNLOCK(vp, 0, td);
>  	*vpp =3D vp;
>  	/*
>  	 * Save the credential of the process that turned on quotas.
> @@ -535,8 +536,9 @@
>  	}
>  	MNT_IUNLOCK(mp);
>  	dqflush(qvp);
> -	ASSERT_VOP_LOCKED(qvp, "quotaoff");
> +	vn_lock(qvp, LK_EXCLUSIVE | LK_RETRY, td);
>  	qvp->v_vflag &=3D ~VV_SYSTEM;
> +	VOP_UNLOCK(qvp, 0, td);
>  	error =3D vn_close(qvp, FREAD|FWRITE, td->td_ucred, td);
>  	ump->um_quotas[type] =3D NULLVP;
>  	crfree(ump->um_cred[type]);
>=20
>=20



--rwEMma7ioTxnRzrJ
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.3 (FreeBSD)

iD8DBQFETkzcWry0BWjoQKURAn1MAKCuryb8gNH6U31x517qEavL+zCUuwCgjzcv
qdvIcijYVksdB1/UxF69Xpc=
=gkLk
-----END PGP SIGNATURE-----

--rwEMma7ioTxnRzrJ--



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