On 05/22/2014 07:47 AM, Peter Krempa wrote: > Add storage driver based functions to access headers of storage files > for metadata extraction. Along with this patch a local filesystem and > gluster via libgfapi implementation is provided. The gluster > implementation is based on code of the saferead_lim function. > --- > src/storage/storage_backend.h | 7 ++++ > src/storage/storage_backend_fs.c | 30 ++++++++++++++++ > src/storage/storage_backend_gluster.c | 66 +++++++++++++++++++++++++++++++++++ > src/storage/storage_driver.c | 40 +++++++++++++++++++++ > src/storage/storage_driver.h | 3 ++ > 5 files changed, 146 insertions(+) > > +++ b/src/storage/storage_backend_gluster.c > @@ -638,6 +638,71 @@ virStorageFileBackendGlusterStat(virStorageSourcePtr src, > } > > > +static ssize_t > +virStorageFileBackendGlusterReadHeader(virStorageSourcePtr src, > + ssize_t max_len, > + char **buf) > +{ > + virStorageFileBackendGlusterPrivPtr priv = src->drv->priv; > + glfs_fd_t *fd = NULL; > + size_t alloc = 0; > + size_t size = 0; > + int save_errno; > + ssize_t ret = -1; > + > + *buf = NULL; > + > + if (!(fd = glfs_open(priv->vol, src->path, O_RDONLY))) { > + virReportSystemError(errno, _("Failed to open file '%s'"), > + src->path); > + goto cleanup; > + } > + > + /* code below is shamelesly stolen from saferead_lim */ s/shamelesly/shamelessly/ > + if (!src->drv->backend->storageFileReadHeader) { > + virReportError(VIR_ERR_INTERNAL_ERROR, > + _("storage file header reading is not supported for " > + "storage type %s (protocol: %s)'"), > + virStorageTypeToString(src->type), > + virStorageNetProtocolTypeToString(src->protocol)); Oh slick - the earlier patch that adds protocol==0 as "none" rather than "nbd" makes this message tolerable even for non-network storage types. Less special-casing is always good :) > + return -1; Isn't this supposed to be 'return -2' according to the function documentation? ACK if you agree about the return value fix, and if it is the only change you make besides the typo fix. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
Attachment:
signature.asc
Description: OpenPGP digital signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list