Subject: Re: mp->mnt_vnodelist change
To: Thor Lancelot Simon <tls@rek.tjls.com>
From: Bill Studenmund <wrstuden@netbsd.org>
List: tech-kern
Date: 10/19/2006 19:50:57
--9dgjiU4MmWPVapMU
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
On Fri, Oct 20, 2006 at 01:02:24AM +0200, Reinoud Zandijk wrote:
> Dear folks,
>=20
> attached you'll find a clean patch on -current that implements the change=
=20
> of the LIST_* structures to TAILQ_* structures for mp->vnodelist and for=
=20
> syncfs.
>=20
> In the process i've also stumbled on quite dirty code that could easily b=
e=20
> rewritten. Some functions were converted to use LIST_ macros but others=
=20
> were just accessing the pointers themselves... I also stumbled on a LFS=
=20
> hack from the Berkly age to get LFS faster; this ancient speedup hack is=
=20
> also undone as its not nessisary anymore. Lastly, i've replaced genfs's=
=20
> explicit messing with syncfs's structures by a call to syncfs itself.
>=20
> Note that the patch had to add one `int' field to struct vnode to keep th=
e=20
> syncfs slot in for TAILQ_REMOVE().
I've been trying to think if there's a way to avoid this, but I can't.
The one thing I'd suggest is add the int to the end. Think about structure=
=20
packing on an LP64 system.
> One userland program is affected, usr.sbin/pstat. AFAIK it should not bre=
ak=20
> any binary compatibilities but and old `pstat -v' will now give `vnode si=
ze=20
> mismatch'.
No biggie. Kernel grovelers have to stay in sync.
Take care,
Bill
--9dgjiU4MmWPVapMU
Content-Type: application/pgp-signature
Content-Disposition: inline
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.3 (NetBSD)
iD8DBQFFODmRWz+3JHUci9cRAkXJAJ9TL7qJrY0XveZR57tHmmMPPoYfOgCdEqBB
0OQuyvHWrVP6BMK3jGAeHEE=
=n/Yf
-----END PGP SIGNATURE-----
--9dgjiU4MmWPVapMU--