From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hans Reiser Subject: Re: reiser4 plugins Date: Sun, 26 Jun 2005 16:42:35 -0700 Message-ID: <42BF3D6B.7000404@namesys.com> References: <20050620235458.5b437274.akpm@osdl.org> <42B8B9EE.7020002@namesys.com> <42B8BB5E.8090008@pobox.com> <200506221824.32995.zam@namesys.com> <20050622142947.GA26993@infradead.org> <42BA2ED5.6040309@namesys.com> <20050626164606.GA18942@infradead.org> Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Return-path: list-help: list-unsubscribe: list-post: Errors-To: flx@namesys.com In-Reply-To: <20050626164606.GA18942@infradead.org> List-Id: Content-Type: text/plain; charset="us-ascii" To: Christoph Hellwig , Alexander Zarochentcev Cc: Alexander Zarochentsev , Jeff Garzik , reiserfs-list@namesys.com, Andrew Morton , linux-kernel@vger.kernel.org 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