Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 13 May 2003 16:08:28 +0200
From:      User Joerg <joerg@britannica.bec.de>
To:        freebsd-current@freebsd.org
Subject:   Re: large ufs2 partitions and 'df'
Message-ID:  <20030513140828.GA12938@britannica.bec.de>
In-Reply-To: <3EBFB57D.7376D4A8@mindspring.com>
References:  <200305112244.h4BMiFTh036221@beastie.mckusick.com> <3EBFB57D.7376D4A8@mindspring.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, May 12, 2003 at 07:53:49AM -0700, Terry Lambert wrote:
> If you're going to change the structure, please put a version
> number as the first field, so that it's never a problem again.
> 
[...]

Why don't you do it the other way around? In my understanding
the problem is kernel <-> user mode compatibility. If the syscall
itself takes the version number, the kernel has the following
possibilities:
- it's the native struct stat -> perfect
- it's a supported older version -> convert / fill only needed fields
- otherwise, return EINVAL or similar

If you now add a special version number 0 to query the stat version
of the kernel, you can add a user level conversion function to
catch those EINVAL cases. This would be necessary for cases like
new userland and old kernel. This function might be loaded via dlopen.

You might even drop the kernel support for old versions and just
provide that special shared object especially for statically
compiled apps.

Just my 2 cent.

-- Joerg

> 
> -- Terry



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