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


Reply via email to