[libvirt] [PATCHv3 4/4] storage: probe qcow2 volumes in gluster pool
Eric Blake
eblake at redhat.com
Tue Nov 12 19:02:13 UTC 2013
On 11/12/2013 09:00 AM, Peter Krempa wrote:
> On 11/12/13 05:19, Eric Blake wrote:
>> Putting together pieces from previous patches, it is now possible
>> for 'virsh dumpxml --pool gluster volname' to report metadata
>
> Did you mean 'virsh vol-dumpxml --pool ... '?
Yes.
>>
>> +static int
>
> This function is declared as an int, but ...
>
>> +virStorageBackendGlusterReadHeader(glfs_fd_t *fd,
>> + const char *name,
>> + int maxlen,
>> + char **buf)
>> +{
>> + char *s;
>> + size_t nread = 0;
>
> .. returns size_t. This could overflow normally, but is guarded by
> maxlen. Okay.
I'll improve the types.
>> + if (!(fd = glfs_open(state->vol, name, O_RDONLY| O_NONBLOCK | O_NOCTTY))) {
>> + if ((errno == ENOENT || errno == ELOOP) &&
>> + S_ISLNK(st->st_mode)) {
>> + VIR_WARN("ignoring dangling symlink '%s'", name);
>> + ret = 0;
>> + } else {
>> + virReportSystemError(errno, _("cannot open volume '%s'"), name);
>> + }
>> + goto cleanup;
>> + }
>
> Now that you actually open the volume file and probe it, you need to
> kill the comment added in previous patch:
>
> + if (VIR_ALLOC(vol) < 0 ||
> + VIR_STRDUP(vol->name, name) < 0 ||
> + virAsprintf(&vol->key, "%s%s/%s",
> + *pool == '/' ? "" : "/", pool, vol->name) < 0)
> + goto cleanup;
> +
> + /* FIXME - must open files to determine if they are non-raw */
> + vol->type = VIR_STORAGE_VOL_NETWORK;
> + vol->target.format = VIR_STORAGE_FILE_RAW;
> + vol->capacity = vol->allocation = st->st_size;
Good catch.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 621 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20131112/51a2dbd1/attachment-0001.sig>
More information about the libvir-list
mailing list