call for review: avgfs
avg at freebsd.org
Tue Apr 6 13:56:49 UTC 2010
I am asking for all the interested people to review my new cool filesystem avgfs.
It is essentially a replacement for ZFS and UFS.
OK, OK, this is only a half-joke :-)
What I am trying to achieve is to create a simple filesystem that could serve both
as a very simple sample/skeleton filesystem and as a demonstration tool.
This is what I did: I took some fs code that I am relatively familiar with (UDF
filesystem), changed all copyrights to mine :-) and cut off all the unnecessary
code. Then I added a little bit of new code.
Here's a result:
The code is provided as .tgz for download, as .diff for patching and as a bunch of
files for online browsing.
What the filesystem does: it is readonly; it accepts any disk as a valid image, no
metadata necessary; it present a single (root) directory with a single file
'thefile' in it. The file is basically a proxy to the underlying disk: reading n
bytes from offset x in the file is, more or less, reading the same bytes from the
Internally reads are done using either bread() on a thefile's vnode or bread() on
devvp. Currently this is controlled at compile time using "#if 1|0", I plan to
turn that into a mount option.
bread() is called with up to MAXBSIZE size, depending on the offset and requested
size. No read-ahead, no breadn(). These policies probably should also be
controlled via mount options.
I am sure that the code contains a bunch of bugs.
There is probably some code that isn't actually needed, and perhaps some needed
code is missing. Likely, some pieces do things incorrectly or do not properly
handle some input values.
I will be very grateful for any help with improving this code in all respects: its
correctness, its quality/readability, its ease of understanding and, most
importantly, its proper implementation and use of VFS interfaces.
Also, I would like some better name for the filesystem, the one that would reflect
its purpose and behavior. But my imagination is not doing well.
I felt obliged to CC you as a copyright holder on the original UDF files that I
used as the basis.
More information about the freebsd-fs