[libvirt] [PATCH] storage: recognize gluster as networked file

Martin Kletzander mkletzan at redhat.com
Tue Nov 5 08:13:48 UTC 2013


On Mon, Nov 04, 2013 at 02:30:50PM -0700, Eric Blake wrote:
> A qcow2 file with a backing file of 'gluster://host/vol/file' should
> not try to look for a directory named './gluster:/' in the file system.
> 
> * src/util/virstoragefile.c (virBackingStoreIsFile): Broaden check
> to include all protocols.
> 
> Signed-off-by: Eric Blake <eblake at redhat.com>
> ---
> 
> This one will be important to my work on gluster backing chains, but
> can be reviewed and applied independently now.
> 
>  src/util/virstoragefile.c | 9 +++++++--
>  1 file changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c
> index 1b4d4cf..8f04b78 100644
> --- a/src/util/virstoragefile.c
> +++ b/src/util/virstoragefile.c
> @@ -671,8 +671,13 @@ virStorageFileMatchesVersion(int format,
>  static bool
>  virBackingStoreIsFile(const char *backing)
>  {
> -    /* Backing store is a network block device or Rados block device */
> -    if (STRPREFIX(backing, "nbd:") || STRPREFIX(backing, "rbd:"))
> +    char *colon = strchr(backing, ':');
> +    char *slash = strchr(backing, '/');
> +
> +    /* Reject anything that looks like a protocol (such as nbd: or
> +     * rbd:); if someone really does want a relative file name that
> +     * includes ':', they can always prefix './'.  */

This makes complete sense, I just can't figure out how qemu treats
this because when I tried it on upstream now, it ended up with a
segfault :)

> +    if (colon && (!slash || colon < slash))
>          return false;
>      return true;
>  }

Anyway, ACK.

Martin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20131105/5513d3a5/attachment-0001.sig>


More information about the libvir-list mailing list