On 10/08/2010 05:48 PM, Stefan Hajnoczi wrote:
Signed-off-by: Stefan Hajnoczi<stefa...@linux.vnet.ibm.com>
---
docs/specs/qed_spec.txt | 94 +++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 94 insertions(+), 0 deletions(-)
+Feature bits:
+* QED_F_BACKING_FILE = 0x01. The image uses a backing file.
+* QED_F_NEED_CHECK = 0x02. The image needs a consistency check before use.
Great that QED_F_NEED_CHECK is now non-optional. However, suppose we
add a new structure (e.g. persistent freelist); it's now impossible to
tell whether the structure is updated or not:
1 new qemu opens image
2 writes persistent freelist
3 clears need_check
4 shuts down
5 old qemu opens image
6 doesn't update persistent freelist
7 clears need_check
8 shuts down
The image is now inconsistent, but has need_check cleared.
We can address this by having a third feature bitmask that is
autocleared by guests that don't recognize various bits; so the sequence
becomes:
1 new qemu opens image
2 writes persistent freelist
3 clears need_check
4 sets persistent_freelist
5 shuts down
6 old qemu opens image
7 clears persistent_freelist (and any other bits it doesn't recognize)
8 doesn't update persistent freelist
9 clears need_check
10 shuts down
The image is now consistent, since the persistent freelist has disappeared.
+* QED_CF_BACKING_FORMAT = 0x01. The image has a specific backing file format
stored.
+
It was suggested to have just a bit saying whether the backing format is
raw or not. This way you don't need to store the format.
--
error compiling committee.c: too many arguments to function