Subject: AFS server port to NetBSD
To: None <current-users@NetBSD.ORG>
From: Ken Hornstein <kenh@cmf.nrl.navy.mil>
List: current-users
Date: 01/25/1996 00:57:27
So, a friend and I started talking seriously about doing an AFS server port
to NetBSD.  We sat down and stared at the code for a while.

Basically, the main problem lines in the fact that currently there doesn't
exist enough free fields in struct dinode for the various fields that AFS
wants (this has been discussed before).

However, my friend (hi Chas!) pointed out something interesting.  The "magic"
field that AFS wanted is used only to differentiate between regular files and
AFS files.  He pointed out that all you really needed was a flag, not the
whole 32 bits of AFS_MAGIC.

A great place to stuff an extra bit would be in the spot that chflags(2)
currently uses.  It looks like it would be easy enough to modify AFS to
just set/clear/test a bit in the chflags struct rather than setting/testing
AFS_MAGIC.  If one did that, then there would be enough free space in the
inode.

The only other solution that came to mind was to put special-case code in
ffs which didn't mess with the chflags value in the dinode if AFS_MAGIC
was set, which I think everyone agrees would be sub-optimal at best :-)
(We did look at the AIX port which uses an extra file, but that looked to
be an even bigger can of worms than anything else).

So, I guess what I'm wondering is - do people think this is a reasonable
solution?  Anyone see any problems with it?  (Besides possibly tramping
on possible flags in the future).

--Ken