[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