Extended attributes should be accessed by an interface that accesses them as files 
with a particular
name.  The current VFS interface is not effective for small files (open and file 
handles are too
heavy weight for 8 byte files), which means that an extended attributes solution 
should have two
components:

1) allowing access to extended attributes as files with a particular name

2) a system call that provides effective access to multiple small files in one system 
call.

For this reason we are considering implementing (interviewed the first person for the 
task today)
the following interface.

reiser4_sandbox(char * command, int string_length)

where command has a syntax of:

"lhs<=rhs;lhs<=rhs;lhs<=rhs;..."

and lhs can be such things as

/process/fd/address_to_write_file_descriptor
or
/process/buffer/(buffer_start, buffer_end, count_bytes_written)

and rhs can be

/filename/attribute_name/(first_byte_desired,last_byte_desired)

to access a range of bytes within an attribute
or

/filename

to access the default stream of a file in its entirety
or 

/filename/attribute

to access an attribute in its entirety, depending on what you want to do.

Hans

Ragnar Kj�rstad wrote:
> 
> CCed to openxdsm because we need extended attributes and Hans Reiser
> because I know he has comments but didn't reply to your mail.
> 
> On Sun, Oct 22, 2000 at 04:23:53PM +0200, Andreas Gruenbacher wrote:
> > Hello,
> >
> > This is a proposal to add extended attributes to the Linux kernel.
> > Extended attributes are name/value pairs associated with inodes.
> >
> > A patch implementing extended attribute system calls, the VFS interface,
> > and code for the ext2 filesystem is available. All material is GPL and/or
> > LGPL licensed. The core implementation is pretty stable since months.
> 
> Did you read the thread on l-k regarding a common interface for
> accessing extended attributes (much like NTFS streams)?
> 
> > New to the code base is a mechanism for sharing extended attribute blocks
> > among inodes on the ext2 filesystem. This is a significant optimization.
> > The block sharing code might still contain bugs. It can be deactivated at
> > kernel compile time.
> 
> This is just an optimization within the filesystem transparent to VFS
> and userspace, right?
> 
> So each filesystem can choose if to do this optimization, and how - for
> example, for many filesystems it would make sence to make this a more
> general optimization; compressing any common "objects" using the same
> algorithm.
> 
> What about inheritence for extended attributes? With this code, there
> are two options:
> * Just setting the attribute for the directory and all subdirectories
>   (It get's compressed anyway...)
>   (not really inheritence though)
> * Implement inheritence in the layers using the attributes, e.g. ACL
> 
> I don't know how much need there is for inheritence here, but if a lot
> of attributes will need it I think it should be supported in the
> interface instead. (though hardlinks really make this hard)
> 
> > CURRENT USES
> >
> > A complete and close to production quality implementation of POSIX-like
> > access control lists, implemented on top of extended attributes, exists.
> > This patch is maintained to be in sync with the extended attributes patch.
> >
> > Andrew Morgan has some code against an earlier version of the extended
> > attributes patch that implements filesystem capabilities. This patch is
> > out of date at the moment.
> 
> HSMs also usually need extended attributes to store data in. A common
> interface to extended attributes on all linux filesystem is a
> requirement for being able to implement XDSM generally for linux.
> 
> --
> Ragnar Kj�rstad
> Big Storage
-
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to [EMAIL PROTECTED]

Reply via email to