Date: Mon, 11 Jul 2011 10:59:53 +0200 From: Pawel Jakub Dawidek <pjd@FreeBSD.org> To: Bruce Evans <brde@optusnet.com.au> Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org, Kirk McKusick <mckusick@FreeBSD.org> Subject: Re: svn commit: r223900 - in head/sys: geom ufs/ffs Message-ID: <20110711085953.GA1675@garage.freebsd.pl> In-Reply-To: <20110710114730.T1039@besplex.bde.org> References: <201107100041.p6A0fVea022978@svn.freebsd.org> <20110710114730.T1039@besplex.bde.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--FL5UXtIhxfXey3p5 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sun, Jul 10, 2011 at 01:30:05PM +1000, Bruce Evans wrote: > % DROP_GIANT(); > % g_topology_lock(); > % - g_access(ump->um_cp, 0, -1, 0); > % + error =3D g_access(ump->um_cp, 0, -1, > % + (mp->mnt_flag & MNT_ROOTFS) ? -1 : 0); >=20 > This might be the fix. >=20 > % g_topology_unlock(); > % PICKUP_GIANT(); > % + if (error) > % + return (error); > % + >=20 > Add missing error handling. g_access() can easily fail, although it > rarely fails in the above since the above asks for less access than > has already been granted. It never fails when you are closing. From g_access(): error =3D pp->geom->access(pp, dcr, dcw, dce); KASSERT(dcr > 0 || dcw > 0 || dce > 0 || error =3D=3D 0, ("Geom provider %s::%s failed closing ->access()", pp->geom->class->name, pp->name)); --=20 Pawel Jakub Dawidek http://www.wheelsystems.com FreeBSD committer http://www.FreeBSD.org Am I Evil? Yes, I Am! http://yomoli.com --FL5UXtIhxfXey3p5 Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.14 (FreeBSD) iEYEARECAAYFAk4au4gACgkQForvXbEpPzTwSgCgglBysBQBFGzk0bkr9I7aZUpn VagAoIcw9NYarEp0uuvAno2/lcW8PnYi =odtJ -----END PGP SIGNATURE----- --FL5UXtIhxfXey3p5--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20110711085953.GA1675>