[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