]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
conf: drop extra storage probe
authorEric Blake <eblake@redhat.com>
Tue, 29 Apr 2014 03:40:22 +0000 (21:40 -0600)
committerEric Blake <eblake@redhat.com>
Mon, 5 May 2014 16:46:05 +0000 (10:46 -0600)
All callers of virStorageFileGetMetadataFromBuf were first calling
virStorageFileProbeFormatFromBuf, to learn what format to pass in.
But this function is already wired to do the exact same probe if
the incoming format is VIR_STORAGE_FILE_AUTO, so it's simpler to
just refactor the probing into the central function.

* src/util/virstoragefile.h (virStorageFileGetMetadataFromBuf):
Drop parameter.
(virStorageFileProbeFormatFromBuf): Drop declaration.
* src/util/virstoragefile.c (virStorageFileGetMetadataFromBuf):
Do probe here instead of in callers.
(virStorageFileProbeFormatFromBuf): Make static.
* src/libvirt_private.syms (virstoragefile.h): Drop function.
* src/storage/storage_backend_fs.c (virStorageBackendProbeTarget):
Update caller.
* src/storage/storage_backend_gluster.c
(virStorageBackendGlusterRefreshVol): Likewise.

Signed-off-by: Eric Blake <eblake@redhat.com>
src/libvirt_private.syms
src/storage/storage_backend_fs.c
src/storage/storage_backend_gluster.c
src/util/virstoragefile.c
src/util/virstoragefile.h

index cc3ae2c290398b40ebb4c59aa2dbc88e94062e26..afda71f39e3f58055cc0bb13ba1f4f70f9e85598 100644 (file)
@@ -1854,7 +1854,6 @@ virStorageFileGetSCSIKey;
 virStorageFileIsClusterFS;
 virStorageFileParseChainIndex;
 virStorageFileProbeFormat;
-virStorageFileProbeFormatFromBuf;
 virStorageFileResize;
 virStorageIsFile;
 virStorageNetHostDefClear;
index 03b5a05cc2d7860471914a9f765299c9991a2bd6..de27890712db09ddf52cf5603e55ce529c501d9e 100644 (file)
@@ -98,16 +98,8 @@ virStorageBackendProbeTarget(virStorageSourcePtr target,
             goto error;
         }
 
-        target->format = virStorageFileProbeFormatFromBuf(target->path,
-                                                          header, len);
-        if (target->format < 0) {
-            ret = -1;
-            goto error;
-        }
-
         if (!(meta = virStorageFileGetMetadataFromBuf(target->path,
                                                       header, len,
-                                                      target->format,
                                                       backingStore,
                                                       backingStoreFormat))) {
             ret = -1;
index 656e97354385492024ae5389bb556f956b5aa4ed..2f0592f76e42a5efe98a7bfc0a60094e0e5f5a2f 100644 (file)
@@ -293,12 +293,7 @@ virStorageBackendGlusterRefreshVol(virStorageBackendGlusterStatePtr state,
     if ((len = virStorageBackendGlusterReadHeader(fd, name, len, &header)) < 0)
         goto cleanup;
 
-    if ((vol->target.format = virStorageFileProbeFormatFromBuf(name,
-                                                               header,
-                                                               len)) < 0)
-        goto cleanup;
     if (!(meta = virStorageFileGetMetadataFromBuf(name, header, len,
-                                                  vol->target.format,
                                                   &vol->backingStore.path,
                                                   &vol->backingStore.format)))
         goto cleanup;
index 6870ae7c4036ad683e75ff37bb0ee1c8c2cd72d2..96af27bf001fdebfa24ca0f0151f0aac29a8ee07 100644 (file)
@@ -713,7 +713,8 @@ virStorageIsFile(const char *backing)
     return true;
 }
 
-int
+
+static int
 virStorageFileProbeFormatFromBuf(const char *path,
                                  char *buf,
                                  size_t buflen)
@@ -971,16 +972,13 @@ virStorageFileMetadataNew(const char *path,
  * @path: name of file, for error messages
  * @buf: header bytes from @path
  * @len: length of @buf
- * @format: expected image format
  * @backing: output malloc'd name of backing image, if any
  * @backingFormat: format of @backing
  *
- * Extract metadata about the storage volume with the specified
- * image format. If image format is VIR_STORAGE_FILE_AUTO, it
- * will probe to automatically identify the format.  Does not recurse.
- *
- * Callers are advised never to use VIR_STORAGE_FILE_AUTO as a
- * format, since a malicious guest can turn a raw file into any
+ * Extract metadata about the storage volume, including probing its
+ * format.  Does not recurse.  Callers are advised not to trust the
+ * learned format if a guest has ever used the volume when it was
+ * raw, since a malicious guest can turn a raw file into any
  * other non-raw format at will.
  *
  * If the returned @backingFormat is VIR_STORAGE_FILE_AUTO
@@ -994,14 +992,13 @@ virStorageSourcePtr
 virStorageFileGetMetadataFromBuf(const char *path,
                                  char *buf,
                                  size_t len,
-                                 int format,
                                  char **backing,
                                  int *backingFormat)
 {
     virStorageSourcePtr ret = NULL;
     virStorageSourcePtr meta = NULL;
 
-    if (!(meta = virStorageFileMetadataNew(path, format)))
+    if (!(meta = virStorageFileMetadataNew(path, VIR_STORAGE_FILE_AUTO)))
         return NULL;
 
     if (virStorageFileGetMetadataInternal(meta, buf, len,
index 9e6cdbaf5cf91c25db4dc296724b7742b0ab19b8..33585ab731826af1a0a2b906a80400e121620716 100644 (file)
@@ -260,8 +260,6 @@ struct _virStorageSource {
 # endif
 
 int virStorageFileProbeFormat(const char *path, uid_t uid, gid_t gid);
-int virStorageFileProbeFormatFromBuf(const char *path, char *buf,
-                                     size_t buflen);
 
 int virStorageFileGetMetadata(virStorageSourcePtr src,
                               uid_t uid, gid_t gid,
@@ -273,11 +271,10 @@ virStorageSourcePtr virStorageFileGetMetadataFromFD(const char *path,
 virStorageSourcePtr virStorageFileGetMetadataFromBuf(const char *path,
                                                      char *buf,
                                                      size_t len,
-                                                     int format,
                                                      char **backing,
                                                      int *backingFormat)
-    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(5)
-    ATTRIBUTE_NONNULL(6);
+    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(4)
+    ATTRIBUTE_NONNULL(5);
 int virStorageFileChainGetBroken(virStorageSourcePtr chain,
                                  char **broken_file);