Subject: Re: mp->mnt_vnodelist change
To: Thor Lancelot Simon <>
From: Bill Studenmund <>
List: tech-kern
Date: 10/19/2006 19:50:57
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,
> attached you'll find a clean patch on -current that implements the change=
> of the LIST_* structures to TAILQ_* structures for mp->vnodelist and for=
> syncfs.
> In the process i've also stumbled on quite dirty code that could easily b=
> rewritten. Some functions were converted to use LIST_ macros but others=
> were just accessing the pointers themselves... I also stumbled on a LFS=
> hack from the Berkly age to get LFS faster; this ancient speedup hack is=
> also undone as its not nessisary anymore. Lastly, i've replaced genfs's=
> explicit messing with syncfs's structures by a call to syncfs itself.
> Note that the patch had to add one `int' field to struct vnode to keep th=
> 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=
packing on an LP64 system.

> One userland program is affected, usr.sbin/pstat. AFAIK it should not bre=
> any binary compatibilities but and old `pstat -v' will now give `vnode si=
> mismatch'.

No biggie. Kernel grovelers have to stay in sync.

Take care,


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

Version: GnuPG v1.4.3 (NetBSD)