[libvirt] [PATCH]: Allow arbitrary paths to virStorageVolLookupByPath
Daniel P. Berrange
berrange at redhat.com
Mon Nov 3 11:55:45 UTC 2008
On Mon, Nov 03, 2008 at 12:38:49PM +0100, Chris Lalancette wrote:
> Daniel P. Berrange wrote:
>
> Oops, of course. I've fixed this up and committed the result; the final patch
> is attached.
>
> Thanks for the review,
>
> --
> Chris Lalancette
> Index: src/storage_backend.c
> ===================================================================
> RCS file: /data/cvs/libvirt/src/storage_backend.c,v
> retrieving revision 1.24
> diff -u -r1.24 storage_backend.c
> --- src/storage_backend.c 28 Oct 2008 17:48:06 -0000 1.24
> +++ src/storage_backend.c 3 Nov 2008 11:32:15 -0000
> @@ -357,16 +357,17 @@
> char *
> virStorageBackendStablePath(virConnectPtr conn,
> virStoragePoolObjPtr pool,
> - char *devpath)
> + const char *devpath)
> {
> DIR *dh;
> struct dirent *dent;
> + char *stablepath;
>
> /* Short circuit if pool has no target, or if its /dev */
> if (pool->def->target.path == NULL ||
> STREQ(pool->def->target.path, "/dev") ||
> STREQ(pool->def->target.path, "/dev/"))
> - return devpath;
> + goto ret_strdup;
>
> /* The pool is pointing somewhere like /dev/disk/by-path
> * or /dev/disk/by-id, so we need to check all symlinks in
> @@ -382,7 +383,6 @@
> }
>
> while ((dent = readdir(dh)) != NULL) {
> - char *stablepath;
> if (dent->d_name[0] == '.')
> continue;
>
> @@ -407,10 +407,17 @@
>
> closedir(dh);
>
> + ret_strdup:
> /* Couldn't find any matching stable link so give back
> * the original non-stable dev path
> */
> - return devpath;
> +
> + stablepath = strdup(devpath);
> +
> + if (stablepath == NULL)
> + virStorageReportError(conn, VIR_ERR_NO_MEMORY, "%s", _("dup path"));
Don't bother with passing a message with any VIR_ERR_NO_MEMORY
errors - just use NULL. The message is totally ignored for this
error code, and 'dup path' is useless info for the end user anyway
Daniel
--
|: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :|
|: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|
More information about the libvir-list
mailing list