Re: reiser4 plugins

randy_dunlap
2005-06-26T18:17:32Z

On Sun, 26 Jun 2005 17:46:06 +0100 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?
|
| 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.

I think that what Hans is trying to say is that the functionality
that is handled by plugin_operations are a different dimension or
vector from the inode/file/dentry etc. operations.
Whether he is right or not is part of the discussion.
and "plugin" is a bad name :(

Is part of the problem that plugins are too extensible?
I.e., the plugin_operations methods can do almost anything?

I would want to see a list of methods that should be supported and then
a reasonable infrastructure for supporting those.
Pick one (like metadata) and drill down on how to support that.

---
~Randy