Subject: Re: Improving the Unix API
To: Alexander Viro <firstname.lastname@example.org>
From: Doug Rabson <email@example.com>
Date: 06/28/1999 00:21:55
On Sun, 27 Jun 1999, Alexander Viro wrote:
> On Sun, 27 Jun 1999, Doug Rabson wrote:
> > This looks viable as long as you don't use small integers to represent
> > FL_UFS etc. Having a single header defining constants for all filesystems
> Erm... sizeof(int)==4. I doubt that you will need more.
> > just doesn't scale at all.
> Sure. If you don't need fs-specific stuff - <sys/stat.h> and there
> you go. If you need some particular fs - <sys/stat.h> and <sys/foo_fs.h>
I'm talking about the concept of a header file containing something like:
#define FL_VFS 0
#define FL_FOOFS 1
#define FD_BARFS 2
not being scalable.
Do you have a complete list of filesystem types? Are you prepared to act
as an Assigned Number authority for that list. For this kind of problem,
strings are a damn sight easier to manage in the long term.
> > You still want a clearly defined set of FS independant flags so that the
> > application doesn't need to care what filesystem it is sitting on.
> And that's exactly the reason for FL_VFS vs. FL_FOOFS separation -
> some applications should be able to talk with the filesystem in the
> filesystem's terms *and* be sure that they will not mess with another fs;
> the rest shouldn't care for fs differences at all (aside of "did the
> sucker set the bits I wanted?" that you already have for SUID/SGID/sticky).
> I don't think that porting it to 4.4 will be difficult - all you
> need is a way to tell VOP_SETATTR what level are you talking to (most
> likely the same way as on the our side - add a field to the structure and
> let the methods scratch their heads). I'm going to do the Linux variant
> and see how it will work. If somebody wants to do it with *BSD - fine, it
> shouldn't be a problem.
I'm sure the api would be easy to port. I wouldn't accept any api for
FreeBSD which involved assigning numbers to filesystem types. It was too
painful to rid it of the last set of numbers from the old mount(2) call.
Doug Rabson Mail: firstname.lastname@example.org
Nonlinear Systems Ltd. Phone: +44 181 442 9037