
On 02/11/2014 09:26 AM, Peter Krempa wrote:
Implement storage backend functions to deal with gluster volumes and implement the "stat" and "unlink" backend APIs. ---
+ +static void +virStorageFileBackendGlusterDeinit(virStorageFilePtr file) +{ + VIR_DEBUG("deinitializing gluster storage file %p(%s@%s)", + file, file->path, file->hosts[0].name);
A bit unusual to list file@host, instead of host/file, but not a show-stopper.
+static int +virStorageFileBackendGlusterInit(virStorageFilePtr file) +{ + virStorageFileBackendPrivPtr backPriv = file->priv; + virStorageFileBackendGlusterPrivPtr priv = NULL; + virDomainDiskHostDefPtr host = &(file->hosts[0]); + const char *hostname = host->name; + int port = 0; + + VIR_DEBUG("initializing gluster storage file %p(%s@%s)", + file, file->path, hostname); + + if (VIR_ALLOC(priv) < 0) + return -1; + + if (VIR_STRDUP(priv->volname, file->path) < 0) + goto error; + + if (!(priv->path = strchr(priv->volname, '/'))) { + virReportError(VIR_ERR_INTERNAL_ERROR, + _("invalid path of gluster volume: '%s'"), + file->path); + goto error; + }
This looks like a lot of shared code; any chance we use a common routine as the basis of both this and virStorageBackendGlusterOpen()? But what you have works, so ACK (a refactor can be a followup). -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org