Re: reiser4 plugins

Hans Reiser
2005-06-26T23:42:34Z

Christoph Hellwig wrote:

>On Wed, Jun 22, 2005 at 08:39:01PM -0700, Hans Reiser wrote:
>
>
>>Correct me if I am wrong:
>>
>>What exists currently in VFS are vector instances, not classes. Plugins,
>>selected by pluginids, are vector classes, with each pluginid selecting
>>a vector class. You propose to have the vector class layer (aka plugin
>>layer) in reiser4 export the vector instance to VFS for VFS to handle
>>for each object, rather than having VFS select reiser4 and reiser4
>>selecting a vector class (aka plugin) which selects a method.
>>
>>If we agree on the above, then I will comment further.
>>
>>
>
>I'm a bit confused about what you're saying here. What does the 'vector'
>in all these expressions mean?
>
>
Was your word, I thought, for the *_operation structures.

>In OO terminology our *_operation structures are interfaces. Each particular
>instance of such a struct that is filled with function pointers is a class.
>Each instance of an inode/file/dentry/superblock/... that uses these operation
>vectors is an object.
>
>What I propose (or rather demand ;-)) is that you don't duplicate this
>infrastructure, and add another dispath layer below these objects but instead
>re-use it for what it is done and only handle things specific to reiser4
>in your own code.
>
Well, that is very different from saying that we get rid of the plugin
layer.

So, rather than having a hierarchy, in which we first select filesystem,
and then select plugin, VFS should treat each plugin as though it was a
filesystem, if I understand you. Plugins and pluginids continue to exist
with the exact same functionality, we just eliminate a function
dereference for the *_operation structures. Let's see how it codes up in
its details.

Zam, can you work on this?

Hans