Subject: RE: CVS commit: src
To: Bill Studenmund <wrstuden@netbsd.org>
From: Gordon Waidhofer <gww@traakan.com>
List: tech-kern
Date: 06/29/2005 17:34:51
Bill Studenmund wrote
> I dislike the fact that we will greatly increase the number of vnodes 
> associated with a file. Now we have a file or directory, the magic 
> attribute vnode for listing additional streams, and vnodes for the new 
> streams.

Good issue. And there are undoubtedly subtle interactions.

A related issue is whether to use separate inodes. Solaris
uses an inode (shadow inode) to contain additional attributes
for a file, like ACLs, and they are manipulated through
purpose-built interfaces, like getfacl()/setfacl() (or whatever
they call them).

Subfile directories are an inode. Subfiles proper are each
an inode. It looks like they followed the lead of shadow
inodes for this. These are accessed through openat(X_ATTR)
and friends.

The advantage of separate inodes is that extending
dump(8) and fsck(8) is extremely straight-forward.
It also makes crafting and parsing an NFS file-handle
a gimme.

There are disadvantages to using separate inodes.
NTFS does not, but rather was built from the ground
up to have lots of stuff dangling from a file.

Regards,
	-gww