The code is in "pre-patch-2.1.45-4.gz", patch relative to a clean 2.1.44.
It still doesn't do unmounting etc cleanly, but with this code the unmount
testing _should_ be something like
shrink_dcache(0);
if (sb->s_root->d_count != some_constant_I_think_it_s_four)
return -EBUSY;
.. ok, we can unmount ..
so it shouldn't be all that hard to add.. I'm hoping that somebody will
re-do their patches for the new code-base, hint hint ;)
Currently not working:
- some of the binfmt loaders (java and misc). It's reasonably
straightforward to fix them, but I only fixed the ones I actually have
enabled (it took me pretty much all of today to fix everything, and I'm
simply too exhausted to worry about details any more).
- rd_root initial ramdisk loading. The file pointer initializations are
more complex, and I can't stomach it right now - again I don't actually
use this feature.
- unmount/remount is still broken.
- probably other stuff that I simply haven't tested.
But the garbage collection driven by low memory conditions seems to work,
and it all "feels" much better than it used to (note that when I say
something "feels good" it doesn't necessarily mean that it is usable, it
mainly means that I think all the basic approaches are fine and while
there may be a lot of details to clean up they really are only details).
In short, I think the major overhaul is done, and the code basically
works. There are quirks and missing stuff still, but I just know/hope that
there are people out there that find it all the more interesting because
of that.
Comments?
Linus