On Thu, Jan 05, 2023 at 05:30:18PM +0100, Peter Krempa wrote:
> Prepare the internal data for passing FDs instead of having qemu open
> the file internally.
> 
> Signed-off-by: Peter Krempa <pkre...@redhat.com>
> ---
>  src/qemu/qemu_block.c   | 31 ++++++++++++++++++++++++++++---
>  src/qemu/qemu_command.c | 22 ++++++++++++++++++++++
>  2 files changed, 50 insertions(+), 3 deletions(-)
> 
> diff --git a/src/qemu/qemu_block.c b/src/qemu/qemu_block.c
> index 8a6f601b29..a672ad6f54 100644
> --- a/src/qemu/qemu_block.c
> +++ b/src/qemu/qemu_block.c
> @@ -673,22 +673,47 @@ qemuBlockStorageSourceGetSshProps(virStorageSource *src)
> 
>  static virJSONValue *
>  qemuBlockStorageSourceGetFileProps(virStorageSource *src,
> -                                   bool onlytarget)
> +                                   bool onlytarget,
> +                                   virTristateBool *autoReadOnly,
> +                                   virTristateBool *readOnly)
>  {
> +    const char *path = src->path;
>      const char *iomode = NULL;
>      const char *prManagerAlias = NULL;
>      virJSONValue *ret = NULL;
> 
>      if (!onlytarget) {
> +        qemuDomainStorageSourcePrivate *srcpriv = 
> QEMU_DOMAIN_STORAGE_SOURCE_PRIVATE(src);
> +
>          if (src->pr)
>              prManagerAlias = src->pr->mgralias;
> 
>          if (src->iomode != VIR_DOMAIN_DISK_IO_DEFAULT)
>              iomode = virDomainDiskIoTypeToString(src->iomode);
> +
> +        if (srcpriv && srcpriv->fdpass) {
> +            path = qemuFDPassGetPath(srcpriv->fdpass);
> +
> +            /* when passing a FD to qemu via the /dev/fdset mechanism qemu
> +             * fetches the appropriate FD from the fdset by checking that it 
> has
> +             * the correct accessmode. Now with 'auto-read-only' in effect 
> qemu
> +             * wants to use a read-only FD first. If the user didn't pass 
> multiple
> +             * FDs the feature will not work regardless, so we'll disable 
> it. */

What happens if users passes multiple FDs but none of them are
read-only? Otherwise looks good so if this is not an issue

Reviewed-by: Pavel Hrdina <phrd...@redhat.com>

Attachment: signature.asc
Description: PGP signature

Reply via email to