I'm sure Micheal had no problem with the Reiser4 benchmarks as such.
When dealing with Reiser4, one immediately has to deal with:
The HANS REISER Murder Trial. Timeline and Analysis.
http://www.phoronix.com/forums/showthread.php?t=7544
http://linux.50webs.org/politics/Rei...ryAnalysis.htm and of course,...
The Linux Kernel Saboteurs.
Although the Linux kernel saboteurs (a number of so called Linux kernel "developers") have sabotaged many areas of Linux, I will concentrate on their efforts in sabotaging Reiser4.
As some will have noticed, Reiser4 no longer works as it used to. The recent patches of Andrew Morton, and Riffard Laurent, cause corruption problems (when they work at all). Morton's patches, also reduced Reiser4's functionality, removing, for example, the cryptocompress plugin. Riffard's patches include the cryptocompress plugin, which seems to work, but the patch causes corruption for plain Reiser4.
You see, the Reiser4 saboteurs arranged that plain Reiser4 will not work properly. However, they forgot to sabotage the more complex case of transparent compression, so we have the weird situation where the more complex case works fine, while the kernel "developers" "struggle" to get the simple case to work like it used to.
The parts of Reiser4 they have not touched, still work, but where they have coded, Reiser4 no longer works.
The fact that Reiser4 worked well, before Hans Reiser's arrest and imprisonment (on what appears to be trumped-up charges) and now doesn't, means that it should be easy to spot the sabotage.
After digging around in the source code, the evidence of deliberate sabotage is very clear.
I present some of the evidence (found by comparing Riffard's patch with older Namesys patches) below.
Update: Namesys has released 2.6.20 and 2.6.21 kernel patches. This has enabled one to completely isolate the differences between Namesys' 2.6.20 patch and Riffard's. The diff file is very small and can be found here. The early sabotage is concentrated in this small file.
One act of sabotage, is found in reiser4/page_cache.c:
Code:
int reiser4_page_io(struct page *page, jnode *node, int rw, gfp_t gfp)
{
struct bio *bio;
int result;
assert("nikita-2094", page != NULL);
assert("nikita-2226", PageLocked(page));
assert("nikita-2634", node != NULL);
assert("nikita-2893", rw == READ || rw == WRITE);
if (rw) {
if (unlikely(page->mapping->host->i_sb->s_flags & MS_RDONLY)) {
unlock_page(page);
return 0;
}
}
bio = page_bio(page, node, rw, gfp);
if (!IS_ERR(bio)) {
if (rw == WRITE) {
SetPageWriteback(page);
Changed to set_page_writeback(page);
unlock_page(page);
}
reiser4_submit_bio(rw, bio);
result = 0;
} else {
unlock_page(page);
result = PTR_ERR(bio);
}
return result;
}
where SetPageWriteback has been changed to set_page_writeback.
This change is hard to spot with SetPageWriteback and set_page_writeback, being very similar in name. This change is almost guaranteed to cause problems, as set_page_writeback is called without calling end_page_writeback(). According to Documentation/filesystems/Locking, this will leave the page itself marked clean but it will be tagged as dirty in the radix tree. This incoherency can lead to all sorts of hard-to-debug problems in the filesystem like having dirty inodes at umount and losing written data. Just as the saboteurs desire, and what we see happening.
For the rest of the article, see:
http://linuxhelp.150m.com
http://linux.50webs.org