This sounds quite like LFS now. LFS however split the volume in smaller
blocks which could be "used", "empty" or "open", IIRC. Their background
cleaner then could push remaining data from used blocks to a currently
open one, marking the block "empty" after that, allowing the FS to write
to the blocks again.
They always had problems with the cleaner, I think.
cheers
simon
--
Serve - BSD +++ RENT this banner advert +++ ASCII Ribbon /"\
Work - Mac +++ space for low €€€ NOW!1 +++ Campaign \ /
Party Enjoy Relax | http://dragonflybsd.org Against HTML \
Dude 2c 2 the max ! http://golden-apple.biz Mail + News / \