On reiserfs and external attributes
External attributes are just a way of attaching extra metadata to files; they are used for things like access control lists and SELinux context information. Most of the standard Linux filesystems support external attributes in 2.6, but reiserfs does not yet have that capability. Given that features like SELinux will not work without external attributes, adding this capability has been high on the wish lists of many users and developers.
When the external attribute patch was posted, however, Hans Reiser sent out a protest asking that the patch not be applied. Those who have followed Hans's work over the years will know what his objection is: external attributes live in their own name space. Hans has dedicated much effort to the task of moving everything into the filesystem name space; he says:
The upcoming Reiser4 filesystem implements Hans's vision of how external attributes should be implemented; essentially, each attribute just looks like a small file containing the attribute value. The solution is fast and elegant; it may well be the way things are done in the future. For the moment, however, there are a few problems:
- Reiser4 is still in beta testing, and has not yet been submitted for
inclusion into the 2.6 kernel. Once it is submitted, it is not
certain that it will be accepted quickly.
- The Reiser4 external attribute API is different from the API used in
the 2.6 kernel. Applications, to use this API, will have to be
rewritten to use the special-purpose reiser4() system call.
- Some users of reiserfs ("Reiser3") might be a little nervous about making an immediate jump to a completely new filesystem. They just might want to be able to continue using their existing filesystems and, simultaneously, make use of external attributes.
The solution seems reasonably clear: Reiser4, once it's ready, can be
merged with its new ways of doing things. The existing reiserfs
filesystem, meanwhile, can be augmented with the capabilities that its
users would like to have now. This approach would seem to offer the best
of both worlds. Mr. Reiser disagrees; he would rather not have (what he
sees as) an inelegant hack grafted onto reiserfs to satisfy immediate
needs. When code is released as free software, however, not even its
creator can prevent its development in certain directions if that's what
its users want.
| Index entries for this article | |
|---|---|
| Kernel | Filesystems/Extended attributes |
| Kernel | Filesystems/Reiser4 |
