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--