Re: metadata plugins (was Re: the " 'official' point of view" expressedby regarding reiser4 inclusion)

From: David Masover
Date: Fri Jul 28 2006 - 15:42:08 EST

Hans Reiser wrote:
Linus Torvalds wrote:

In other words, if a filesystem wants to do something fancy, it needs to do so WITH THE VFS LAYER, not as some plugin architecture of its own.

(Let us try to avoid arguments over whether if you extend VFS it is
still called VFS or is called reiser4's plugin layer, agreed?)

Ok, assuming you actually extend the VFS. The point is that if we want plugins, we don't have to implement them in ext3, but we have to put the plugin interface somewhere standard that is obviously not part of one filesystem (the VFS is the place) so that ext3 can implement a plugin system without having to read or touch a line of reiser4 code, and without compiling reiser4 into the kernel.

It may ultimately not be any different, technically. This seems more like an organizational and political thing. But that doesn't make it less important or valid.

Regarding copyright, these plugins are compiled in. I have resisted
dynamically loaded plugins for now, for reasons I will not go into here.

Good point, there's no GPL issue here. Plugins will either not be distributed (used internally) or distributed as GPL.

If you agree with taking it to the next level, then it is only to be
expected that there are things that aren't well suited as they are, like
parsing /etc/fstab when you have a trillion files. It is not very
feasible to do it for all of the filesystems all at once given finite
resources, it needs a prototype.

Doesn't have to be in fstab, I hope, but think of it this way: ext3 uses JBD for its journaling. As I understand it, any other filesystem can also use JBD, and ext3 is mostly ext2 + JDB.

So, make the plugin interface generic enough that it compliments the VFS, doesn't duplicate it, and doesn't exist as part of Reiser4 (and requires Reiser4 to be present). This may be just a bunch of renaming or a lot of work, I don't know, but I suspect it would make a lot of people a lot happier.

We have finite resources. We can give you a working filesystem with
roughly twice the IO performance of the next fastest you have that does
not disturb other filesystems,. (4x once the compression plugin is
fully debugged). It also fixes various V3 bugs without disturbing that
code with deep fixes. We cannot take every advantage reiser4 has and
port it to every other filesystem in the form of genericized code as a
prerequisite for going in, we just don't have the finances.

This is a very compelling argument to me, but that's preaching to the choir, I've been running Reiser4 since before it was released, and before it looked like it was going to be stable anytime soon.

It may be bold of me to speak for the LKML, but I think the general consensus is:

The speed of a nonworking program is irrelevant -- no one cares how fast it is if it breaks things, either now or in the future. Currently, the concern is that it breaks things in the future, like adding plugin support to other filesystems.

And no one else cares what your finances are. Not out of compassion, but out of practicality. For instance, it would be a huge financial benefit to me if the kernel displayed, in big bold letters while booting, that DAVID MASOVER WROTE THIS! (I'm sure Linus knows what I'm talking about.) It would also be untrue in my case, and pointless for everyone else in the kernel, so I have to find another way to make money.

This is because one way Linux stays ahead of the competition (technologically) is by having quality be a much greater motivation than money.

plugins our per file compression plugins and encryption plugins cannot
work. We can however let other filesystems use our code, and cooperate
as they extend it and genericize it for their needs. Imposing code on
other development teams is not how one best leads in open source, one
sets an example and sees if others copy it. That is what I propose to
do with our plugins. If no one copies, then we have harmed no one. Reasonable?

Someone still has to maintain the FS. Anyway, like I said, this is a very compelling argument for me, but code speaks louder than words. Maybe, if you insist it's not in the VFS, maybe use some insanely simple FS like RomFS to demonstrate another FS using plugins?

Do that, and put it in the VFS. Maybe implement something like cramfs as a romfs plugin (another demo). Maybe even per-file -- implement zisofs as isofs + compression plugin. I think that would effectively kill any argument that plugins are bad because they are only in Reiser4.

Beyond that is all marketing, I guess. The word "plugin" is not helping here, too many people remember Plugins like Macromedia Flash...
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at