Re: [PATCH v2 10/13] qemu: enable basic qcow2 data-file feature support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, Sep 07, 2024 at 17:15:35 +0300, Nikolai Barybin via Devel wrote:
> - propogate data-file to cmdline
> - determine data-file within disk chain
> - enable live disk insertion
> 
> Signed-off-by: Nikolai Barybin <nikolai.barybin@xxxxxxxxxxxxx>
> ---
>  src/qemu/qemu_block.c   |  7 +++++++
>  src/qemu/qemu_command.c |  5 +++++
>  src/qemu/qemu_domain.c  | 14 +++++++++++++-
>  3 files changed, 25 insertions(+), 1 deletion(-)
> 
> diff --git a/src/qemu/qemu_block.c b/src/qemu/qemu_block.c
> index 6e90bae9f2..5d2a638a56 100644
> --- a/src/qemu/qemu_block.c
> +++ b/src/qemu/qemu_block.c
> @@ -1301,6 +1301,13 @@ qemuBlockStorageSourceGetFormatQcow2Props(virStorageSource *src,
>                                NULL) < 0)
>          return -1;
>  
> +    if (src->dataFileStore) {
> +        if (virJSONValueObjectAdd(&props,
> +                                  "s:data-file", src->dataFileStore->nodenameformat,

You must not use the nodename* fields directly. In fact this doesn't
even work as raw files don't even have a 'format' node name any more.

This needs to be qemuBlockStorageSourceGetEffectiveNodename(src->dataFileStore)

> +                                  NULL) < 0)
> +        return -1;
> +    }
> +
>      return 0;
>  }
>  
> diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
> index 1b992d8eed..503374f470 100644
> --- a/src/qemu/qemu_command.c
> +++ b/src/qemu/qemu_command.c
> @@ -11178,6 +11178,11 @@ qemuBuildStorageSourceChainAttachPrepareBlockdev(virStorageSource *top)
>          if (qemuBuildStorageSourceChainAttachPrepareBlockdevOne(data, n,
>                                                                  n->backingStore) < 0)
>              return NULL;
> +
> +        if (n->dataFileStore &&
> +            qemuBuildStorageSourceChainAttachPrepareBlockdevOne(data, n->dataFileStore,
> +                                                                n->dataFileStore->backingStore) < 0)
> +            return NULL;
>      }
>  

Missing corresponding changes to
qemuBlockStorageSourceChainDetachPrepareBlockdev(), thus when
hot-unplugging a disk the data file will not be unplugged.


>      return g_steal_pointer(&data);


Possibly as a separata patch you'll also need to forbid image creation
with data file, e.g. when creating snapshots.
'qemuBlockStorageSourceCreate' is the function to consider.



[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux