The long term aim is to move to a journalling fs - I've been looking at reiserfs, which compiles cleanly but doesn't work yet.

Doesn't work on the ARM platform or at all? I've been using it at home for several months on my Intel Linux workstations and it's been pretty much bulletproof for me. I've run some pretty intensive torture tests on it against my file server and it's held up against any evil thing I can think of to do to it so far. There's also the advantage that reiserfs excels at handling directories with very large numbers of files in them. Kinda like /drive0/fids... Although it seems to me that reiserfs consumes more memory than ext2 does, so in a tight-memory situation like on the empeg, that disadvantage might outweigh the advantages.

We have to get this working for another OEM product, so I suspect it'll leak over at some point. It would mean reformatting, though...

There is always the kluge of doing ext2-resize as small as it will go, create reiserfs partition in empty space, move data from ext2->reiserfs, resize ext2 smaller, resize reiserfs bigger, move data, repeat as necessary... :) Although users may just prefer to erase and reinstall their mp3s than wait for this nonsese...

Or you could consider ext3 if it ever comes along in a stable form. Converting from ext2 to ext3 is supposed to be as simple as "umount /drive0; mount -t ext2 /dev/hda4 /drive0" since the physical structure is the same.