Hi all
I have just made some check ins that implement a set of improvements. YYes, I
would have liked to check these in as a group of change sets, but that is
just not what happened.
A brief summary of the main points:
1) Improvement to various checking and problem handling in checkpointing that
was causing failures under certain scenarios.
2) Adding a checksum to the checkpointing.
3) Better handling of memory allocation failures.
4) Addition of far more extensive verification code. See below.
5) Addition of mount-time control switches. See below.
I hope nothing was broken in the process.
The extra verification can be controlled with two trace flags: verify and
verify_nand (or use verify_all to turn them both on). The verification does
significant cross checking to ensure that the run-time state is correct.
Running with verification on, particularly verify_nand does slow things.
There are now extra mount options that can be used to control the use of
checkpointing and the yaffs internal cache:
no-checkpoint-read don't read a checkpoint if it exists (forces a rescan)
no-checkpoint-write don't write a checkpoint
no-checkpoint both of the above
no-cache no internbalcache
The main purpose of these options is to facilitate debugging.
Now on to a whole lot more things...
-- CHarles