
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