On Wed, 12/23 10:46, Denis V. Lunev wrote:
> This series of patches is aimed to prevent usage of image
> file by different qemu instances. In case we are the first
> instance, and option lock is lockfile, - we lock the image file,
> and if check option is on, we check the file and fix it if
> nessecary. If one of this two ops fails - the image is closed
> with the error.
> 
> Patchset is not polished at all! Sent for a discussion as an alternative
> approach.

I like this approach. The first two patches match what I was thinking of.

Patch 5 is okay, the unclean flag reflects HEADER_INUSE_MAGIC in parallels
header; unfortunately patch 4 is wrong because qcow2 lacks a counterpart flag
in the format, and the patch only modified an in memory variable.  we have to
add this as a compatible_features bit in order to support this operation.

Didn't review very closely because at least one patch doesn't seem to compile.
:)

Fam

> 
> Signed-off-by: Olga Krishtal <okrish...@virtuozzo.com>
> Signed-off-by: Denis V. Lunev <d...@openvz.org>
> CC: Kevin Wolf <kw...@redhat.com>
> CC: Max Reitz <mre...@redhat.com>
> CC: Eric Blake <ebl...@redhat.com>
> CC: Fam Zheng <f...@redhat.com>
> 
> Olga Krishtal (5):
>   block: added lock image option and callback
>   block: implemented bdrv_lock_image for raw file
>   block: added check image option and callback bdrv_is_opened_unclean
>   qcow2: implemented bdrv_is_opened_unclean
>   block/paralels: added paralles implementation for
>     bdrv_is_opened_unclean
> 
>  block.c                   | 73 
> +++++++++++++++++++++++++++++++++++++++++++++++
>  block/parallels.c         |  7 ++++-
>  block/qcow2.c             | 11 ++++++-
>  block/qcow2.h             |  1 +
>  block/raw-posix.c         | 15 ++++++++++
>  block/raw-win32.c         | 19 ++++++++++++
>  include/block/block.h     |  2 ++
>  include/block/block_int.h |  2 ++
>  qapi/block-core.json      |  9 ++++++
>  9 files changed, 137 insertions(+), 2 deletions(-)
> 
> -- 
> 2.1.4
> 

Reply via email to