DESC Redo the commit procedure to allow true transactions that affect several portions of the file. EDESC This is a big rework of the commit procedure, which make transactions really useful by bundling operations up and apply all of them atomically, which is what one would expect. So now you create a transaction, add some operations to it (writes to different offsets) and then commit it as a whole. It's a big patch, it could have been splitted in more parts (ie. the move of jfsck() is pretty much orthogonal to this) but as I'm changing code all over the place this is easier to work with.