[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