[libvirt] Re: [PATCH 5/6] Add virStorageFileGetMetadata() helper
Daniel P. Berrange
berrange at redhat.com
Wed Sep 30 09:28:11 UTC 2009
On Tue, Sep 29, 2009 at 09:56:48AM +0100, Mark McLoughlin wrote:
> * src/util/storage_file.c: add virStorageFileGetMetadata() so that
> the caller does not need to open the file
> ---
> src/libvirt_private.syms | 1 +
> src/util/storage_file.c | 20 ++++++++++++++++++++
> src/util/storage_file.h | 3 +++
> 3 files changed, 24 insertions(+), 0 deletions(-)
>
> diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
> index 4890032..635c6b6 100644
> --- a/src/libvirt_private.syms
> +++ b/src/libvirt_private.syms
> @@ -393,6 +393,7 @@ virStorageGenerateQcowPassphrase;
> # storage_file.h
> virStorageFileFormatTypeToString;
> virStorageFileFormatTypeFromString;
> +virStorageFileGetMetadata;
> virStorageFileGetMetadataFromFD;
>
> # threads.h
> diff --git a/src/util/storage_file.c b/src/util/storage_file.c
> index e674713..44057d2 100644
> --- a/src/util/storage_file.c
> +++ b/src/util/storage_file.c
> @@ -25,6 +25,7 @@
> #include "storage_file.h"
>
> #include <unistd.h>
> +#include <fcntl.h>
> #include "memory.h"
> #include "virterror_internal.h"
>
> @@ -402,3 +403,22 @@ virStorageFileGetMetadataFromFD(virConnectPtr conn,
>
> return 0;
> }
> +
> +int
> +virStorageFileGetMetadata(virConnectPtr conn,
> + const char *path,
> + virStorageFileMetadata *meta)
> +{
> + int fd, ret;
> +
> + if ((fd = open(path, O_RDONLY)) < 0) {
> + virReportSystemError(conn, errno, _("cannot open file '%s'"), path);
> + return -1;
> + }
> +
> + ret = virStorageFileGetMetadataFromFD(conn, path, fd, meta);
> +
> + close(fd);
> +
> + return ret;
> +}
> diff --git a/src/util/storage_file.h b/src/util/storage_file.h
> index e34d749..b0abcaf 100644
> --- a/src/util/storage_file.h
> +++ b/src/util/storage_file.h
> @@ -51,6 +51,9 @@ typedef struct _virStorageFileMetadata {
> bool encrypted;
> } virStorageFileMetadata;
>
> +int virStorageFileGetMetadata(virConnectPtr conn,
> + const char *path,
> + virStorageFileMetadata *meta);
> int virStorageFileGetMetadataFromFD(virConnectPtr conn,
> const char *path,
> int fd,
ACK
Daniel
--
|: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :|
|: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|
More information about the libvir-list
mailing list