| To: | Nathan Scott <nathans@xxxxxxx> |
|---|---|
| Subject: | Re: reiser4 (was Re: [PATCH] Revised extended attributes interface) |
| From: | Hans Reiser <reiser@xxxxxxxxxxx> |
| Date: | Tue, 11 Dec 2001 15:02:34 +0300 |
| Cc: | Andreas Gruenbacher <ag@xxxxxxxxxxx>, linux-kernel@xxxxxxxxxxxxxxx, linux-fsdevel@xxxxxxxxxxxxxxx, linux-xfs@xxxxxxxxxxx |
| References: | <20011205143209.C44610@wobbly.melbourne.sgi.com> <20011207202036.J2274@redhat.com> <20011208155841.A56289@wobbly.melbourne.sgi.com> <3C127551.90305@namesys.com> <20011211134213.G70201@wobbly.melbourne.sgi.com> |
| Sender: | owner-linux-xfs@xxxxxxxxxxx |
| User-agent: | Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.6) Gecko/20011120 |
I respond below. I didn't see that email, probably because I was not on the cc list. Nathan Scott wrote: Changing the name of the system call is not a biggie. Our approach is to makehi Hans, it work for reiserfs, then proselytize. While we work, we let people know what we are working on, and if they join in, great to have it work for more than one FS.
For us, there are semantic advantages to having a single system call. Probably it will get a lot of argument once we have working code, and frankly I prefer to have that argument only after it is something usable, and it is easy to see the convenience of expression that comes from it. We want to Linux to be MORE expressive than BeOS in regards to files. *
** * Curtis Anderson wrote: > The problem with streams-style attributes comes from stepping onto the > slippery slope of trying to put too much generality into it. I chose the > block-access style of API so that there would be no temptation to start > down that slope. No, it is _not_ goodness, IMHO. - If you did implement the API for attributes through files and directori es, then what would you do with named streams?!? * ** ** *Hans Reiser wrote: What is your intended functional difference between extended attributes and streams? None? Ok, let's assume none until I get your response. (I can respond more specifically after you correct me.) Let me further go out on a limb,and guess that you intend that extended attributes are meta-information about the object, and streams are contained within the object. In this case, a naming convention is quite sufficient to distinguish them. Extended attributes can have names of the form filenameA/..extone. Streams can have names of the form filenameA/streamone. In other words, all meta-information about an object should by convention (and only by convention, because people should live free, and because there is not always an obvious distinction between meta and contained information) be preceded by '..' Note that readdir should return neither stream names nor extended attribute names, and the use of 'hidden' directory entries accomplishes this (ala .snapshot for WAFL). * ** ** *Curtis: You can't possibly have both using the same API since you would then get name collision on filesystems where both named streams and EAs are supported. * ** ** *Name distinctions are what you use to avoid name collisions, see above. * ** ** *Curtis: (And I haven't even mentioned EAs and named streams attached to actual _real_ directories yet.) * ** *I don't understand this. * ** ** *Curtis: Let's face it: EAs exist. They are _not_ files/directories so the API * ** *Is this an argument? EA's do not exist in Linux, and they should never exist as something that is more than a file. Since they do not exist, you might as well improve the filesystems you port to Linux while porting them. APIs shape an OS over the long term, and if done wrong they burden generations after you with crud. * ** ** *Curtis: should not make them appear as files/directories. - You have to consider that there are a lot of filesystems out there which are already developed and which need to be supported. - Not everyone has their own filesystem which they can change/extend the specifications/implementation of at will. * ** * Yes they do. It is all GPL'd. Even XFS. Do the underlying infrastructure the right way, and I bet you'll be surprised at how little need there really is for ea's done the wrong way. A user space library can cover over it all (causing only the obsolete programs using it to suffer while they wait to fade away). * What would have happened if set theory had not just sets and elements, but sets, elements, extended-attributes, and streams, and you could not use the same operators on streams that you use on elements? It would have been crap as a theoretical model. It does real damage when you add things that require different operators to the set of primitives. Closure is extremely important to design. Don't do this. Hans ** ** * * |
| Previous by Date: | Implementing POSIX ACLs - was: Re: [PATCH] Revised extended attributes interface, Anton Altaparmakov |
|---|---|
| Next by Date: | Re: [PATCH] Revised extended attributes interface, Stephen C. Tweedie |
| Previous by Thread: | reiser4 (was Re: [PATCH] Revised extended attributes interface), Nathan Scott |
| Next by Thread: | Re: reiser4 (was Re: [PATCH] Revised extended attributes interface), Anton Altaparmakov |
| Indexes: | [Date] [Thread] [Top] [All Lists] |