Subject: Re: 64 bit inode changes
To: None <tech-kern@netbsd.org>
From: Joerg Sonnenberger <joerg@britannica.bec.de>
List: tech-kern
Date: 08/16/2005 00:14:26
On Mon, Aug 15, 2005 at 05:47:15PM -0400, Christos Zoulas wrote:
> I just finished converting the kernel API's to 64 bit inodes. I had to
> version the following system calls:

Nice. I'm working on the same for DragonFly right now. Actually, only
struct dirent * related things are left.

> Things that might be broken:
> 
> 	- emulations

The emulations have been quite easy to handle on DragonFly, since most
of them used their own format already.

> 	- nfs

This is similiar to UFS. The structure of the NFS code just makes it
harder to correctly fix.

> But should be trivial to fix. The hardest part of the exercise was
> ufs_vnops.c:ufs_readdir() which needed a complete rewrite since it
> assumed that on-disk version of dirent has the same layout as the
> in-memory one. None of the filesystems have been converted to use
> 64 bit inodes yet.

It might also be a good point to remove the hard-wired d_name length in
dirent. The constant for its length should at the very least be NAME_MAX
and not MAXNAMLEN. I've choosen _DIRENT_ALLOC and _DIRENT_NEXT for the
macros to determine the filesystem dependent struct dirent size and
compute the address of the next dirent. I think it would be helpful if
we can agree on one convention :-) The underscore was choosen because
this macros are not part of SUS.

Joerg