"Stephen C. Tweedie" wrote:
> 
> Hi,
> 
> On Wed, Oct 25, 2000 at 09:09:57AM -0700, Hans Reiser wrote:
> 
> > Why do you force the user to copy the data into the attrib structure, rather than 
>letting him leave
> > the data where it lies and simply specify the location to the kernel?
> 
> In the first draft of the API put together, I did in fact leave the
> attributes intact and just referred to the buffers indirectly.
> However, that breaks for GETALL, where the application is giving the
> kernel a large buffer into which an unknown number of attributes may
> be written.

That is why I use a sequence of assignment statements in my proposal for a syntax.  
That allows you
to leave in place the data, and assign multiple file contents to multiple locations in 
the process
address space, or use a file descriptor to access the contents, as the user chooses.


  It also breaks the old-value return from the SET
> functions if, for example, you are setting an ACL on a uid which
> already has more than one ACL entry.
> 
> Basically, for returning an unknown number of items to user space,
> it's much cleaner just to let the kernel stuff all of the data into a
> single return buffer.

Do you see why I disagree on this?

> 
> We _could_ specify different data layouts for set and get, but that's
> ugly.
> 
> > Why do you treat attributes differently from files?  Why is your interface 
>specific to attributes
> > rather than files generally with attributes being files with a particular name?
> 
> Atomic updates.

You are saying we need a transaction syntax with a transaction start and a transaction 
end operator
pair, yes?  Let's stop being inferior to databases..... this is something new, let's 
do it right.

> 
> There are existing filesystems which have completely separate
> namespaces for block-attributes and for named streams.  Named streams
> have proper file semantics, but block attributes do not --- they have
> a fixed maximum size and are read/written in one single go.

So you need an EINCOMPLETE_IO or some such, yes?  procfs has the same problem, let's 
solve it
orthogonally to this discussion.

> 
> Furthermore, for security applications (eg. ACLs) you really want the
> atomic update guarantees to be 100% failsafe in the kernel, and
> ideally you want atomic get-and-set.
> 
> The extended attribute API was meant for situations where we are
> dealinng with these sorts of attributes, not for places where streams
> are more appropriate.

You can access as a stream or as an atomic unit, just specify it or constrain it, but 
that should be
an orthogonal feature.
> 
> Cheers,
>  Stephen
-
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to [EMAIL PROTECTED]

Reply via email to