[libvirt] [PATCH 3/6] storage: split fs storage file code from storage driver backend

Daniel P. Berrangé posted 6 patches 7 years ago
[libvirt] [PATCH 3/6] storage: split fs storage file code from storage driver backend
Posted by Daniel P. Berrangé 7 years ago
The storage file code needs to be run in the hypervisor drivers, while
the storage backend code needs to be run in the storage driver. Split
the source code as a preparatory step for creating separate loadable
modules.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
 src/storage/Makefile.inc.am      |   2 +
 src/storage/storage_backend_fs.c | 210 +-------------------------------
 src/storage/storage_file_fs.c    | 251 +++++++++++++++++++++++++++++++++++++++
 src/storage/storage_file_fs.h    |  29 +++++
 4 files changed, 285 insertions(+), 207 deletions(-)
 create mode 100644 src/storage/storage_file_fs.c
 create mode 100644 src/storage/storage_file_fs.h

diff --git a/src/storage/Makefile.inc.am b/src/storage/Makefile.inc.am
index 1e81249272..af2c97ab93 100644
--- a/src/storage/Makefile.inc.am
+++ b/src/storage/Makefile.inc.am
@@ -14,6 +14,8 @@ STORAGE_DRIVER_SOURCES = \
 STORAGE_DRIVER_FS_SOURCES = \
 	storage/storage_backend_fs.h \
 	storage/storage_backend_fs.c \
+	storage/storage_file_fs.h \
+	storage/storage_file_fs.c \
 	$(NULL)
 
 STORAGE_DRIVER_LVM_SOURCES = \
diff --git a/src/storage/storage_backend_fs.c b/src/storage/storage_backend_fs.c
index 9b0fcf92c5..bface86b43 100644
--- a/src/storage/storage_backend_fs.c
+++ b/src/storage/storage_backend_fs.c
@@ -1,7 +1,7 @@
 /*
  * storage_backend_fs.c: storage backend for FS and directory handling
  *
- * Copyright (C) 2007-2015 Red Hat, Inc.
+ * Copyright (C) 2007-2018 Red Hat, Inc.
  * Copyright (C) 2007-2008 Daniel P. Berrange
  *
  * This library is free software; you can redistribute it and/or
@@ -28,21 +28,15 @@
 #include <stdio.h>
 #include <errno.h>
 #include <fcntl.h>
-#include <unistd.h>
 #include <string.h>
 
-#include <libxml/parser.h>
-#include <libxml/tree.h>
-#include <libxml/xpath.h>
-
 #include "virerror.h"
 #include "storage_backend_fs.h"
+#include "storage_file_fs.h"
 #include "storage_util.h"
 #include "storage_conf.h"
-#include "virstoragefilebackend.h"
 #include "vircommand.h"
 #include "viralloc.h"
-#include "virxml.h"
 #include "virfile.h"
 #include "virlog.h"
 #include "virstring.h"
@@ -705,198 +699,6 @@ virStorageBackend virStorageBackendNetFileSystem = {
 #endif /* WITH_STORAGE_FS */
 
 
-typedef struct _virStorageFileBackendFsPriv virStorageFileBackendFsPriv;
-typedef virStorageFileBackendFsPriv *virStorageFileBackendFsPrivPtr;
-
-struct _virStorageFileBackendFsPriv {
-    char *canonpath; /* unique file identifier (canonical path) */
-};
-
-
-static void
-virStorageFileBackendFileDeinit(virStorageSourcePtr src)
-{
-    VIR_DEBUG("deinitializing FS storage file %p (%s:%s)", src,
-              virStorageTypeToString(virStorageSourceGetActualType(src)),
-              src->path);
-
-    virStorageFileBackendFsPrivPtr priv = src->drv->priv;
-
-    VIR_FREE(priv->canonpath);
-    VIR_FREE(priv);
-}
-
-
-static int
-virStorageFileBackendFileInit(virStorageSourcePtr src)
-{
-    virStorageFileBackendFsPrivPtr priv = NULL;
-
-    VIR_DEBUG("initializing FS storage file %p (%s:%s)[%u:%u]", src,
-              virStorageTypeToString(virStorageSourceGetActualType(src)),
-              src->path,
-              (unsigned int)src->drv->uid, (unsigned int)src->drv->gid);
-
-    if (VIR_ALLOC(priv) < 0)
-        return -1;
-
-    src->drv->priv = priv;
-
-    return 0;
-}
-
-
-static int
-virStorageFileBackendFileCreate(virStorageSourcePtr src)
-{
-    int fd = -1;
-    mode_t mode = S_IRUSR;
-
-    if (!src->readonly)
-        mode |= S_IWUSR;
-
-    if ((fd = virFileOpenAs(src->path, O_WRONLY | O_TRUNC | O_CREAT, mode,
-                            src->drv->uid, src->drv->gid, 0)) < 0) {
-        errno = -fd;
-        return -1;
-    }
-
-    VIR_FORCE_CLOSE(fd);
-    return 0;
-}
-
-
-static int
-virStorageFileBackendFileUnlink(virStorageSourcePtr src)
-{
-    return unlink(src->path);
-}
-
-
-static int
-virStorageFileBackendFileStat(virStorageSourcePtr src,
-                              struct stat *st)
-{
-    return stat(src->path, st);
-}
-
-
-static ssize_t
-virStorageFileBackendFileRead(virStorageSourcePtr src,
-                              size_t offset,
-                              size_t len,
-                              char **buf)
-{
-    int fd = -1;
-    ssize_t ret = -1;
-
-    if ((fd = virFileOpenAs(src->path, O_RDONLY, 0,
-                            src->drv->uid, src->drv->gid, 0)) < 0) {
-        virReportSystemError(-fd, _("Failed to open file '%s'"),
-                             src->path);
-        return -1;
-    }
-
-    if (offset > 0) {
-        if (lseek(fd, offset, SEEK_SET) == (off_t) -1) {
-            virReportSystemError(errno, _("cannot seek into '%s'"), src->path);
-            goto cleanup;
-        }
-    }
-
-    if ((ret = virFileReadHeaderFD(fd, len, buf)) < 0) {
-        virReportSystemError(errno,
-                             _("cannot read header '%s'"), src->path);
-        goto cleanup;
-    }
-
- cleanup:
-    VIR_FORCE_CLOSE(fd);
-
-    return ret;
-}
-
-
-static const char *
-virStorageFileBackendFileGetUniqueIdentifier(virStorageSourcePtr src)
-{
-    virStorageFileBackendFsPrivPtr priv = src->drv->priv;
-
-    if (!priv->canonpath) {
-        if (!(priv->canonpath = canonicalize_file_name(src->path))) {
-            virReportSystemError(errno, _("can't canonicalize path '%s'"),
-                                 src->path);
-            return NULL;
-        }
-    }
-
-    return priv->canonpath;
-}
-
-
-static int
-virStorageFileBackendFileAccess(virStorageSourcePtr src,
-                                int mode)
-{
-    return virFileAccessibleAs(src->path, mode,
-                               src->drv->uid, src->drv->gid);
-}
-
-
-static int
-virStorageFileBackendFileChown(const virStorageSource *src,
-                               uid_t uid,
-                               gid_t gid)
-{
-    return chown(src->path, uid, gid);
-}
-
-
-virStorageFileBackend virStorageFileBackendFile = {
-    .type = VIR_STORAGE_TYPE_FILE,
-
-    .backendInit = virStorageFileBackendFileInit,
-    .backendDeinit = virStorageFileBackendFileDeinit,
-
-    .storageFileCreate = virStorageFileBackendFileCreate,
-    .storageFileUnlink = virStorageFileBackendFileUnlink,
-    .storageFileStat = virStorageFileBackendFileStat,
-    .storageFileRead = virStorageFileBackendFileRead,
-    .storageFileAccess = virStorageFileBackendFileAccess,
-    .storageFileChown = virStorageFileBackendFileChown,
-
-    .storageFileGetUniqueIdentifier = virStorageFileBackendFileGetUniqueIdentifier,
-};
-
-
-virStorageFileBackend virStorageFileBackendBlock = {
-    .type = VIR_STORAGE_TYPE_BLOCK,
-
-    .backendInit = virStorageFileBackendFileInit,
-    .backendDeinit = virStorageFileBackendFileDeinit,
-
-    .storageFileStat = virStorageFileBackendFileStat,
-    .storageFileRead = virStorageFileBackendFileRead,
-    .storageFileAccess = virStorageFileBackendFileAccess,
-    .storageFileChown = virStorageFileBackendFileChown,
-
-    .storageFileGetUniqueIdentifier = virStorageFileBackendFileGetUniqueIdentifier,
-};
-
-
-virStorageFileBackend virStorageFileBackendDir = {
-    .type = VIR_STORAGE_TYPE_DIR,
-
-    .backendInit = virStorageFileBackendFileInit,
-    .backendDeinit = virStorageFileBackendFileDeinit,
-
-    .storageFileAccess = virStorageFileBackendFileAccess,
-    .storageFileChown = virStorageFileBackendFileChown,
-
-    .storageFileGetUniqueIdentifier = virStorageFileBackendFileGetUniqueIdentifier,
-};
-
-
 int
 virStorageBackendFsRegister(void)
 {
@@ -911,13 +713,7 @@ virStorageBackendFsRegister(void)
         return -1;
 #endif /* WITH_STORAGE_FS */
 
-    if (virStorageFileBackendRegister(&virStorageFileBackendFile) < 0)
-        return -1;
-
-    if (virStorageFileBackendRegister(&virStorageFileBackendBlock) < 0)
-        return -1;
-
-    if (virStorageFileBackendRegister(&virStorageFileBackendDir) < 0)
+    if (virStorageFileFsRegister() < 0)
         return -1;
 
     return 0;
diff --git a/src/storage/storage_file_fs.c b/src/storage/storage_file_fs.c
new file mode 100644
index 0000000000..c8d87514eb
--- /dev/null
+++ b/src/storage/storage_file_fs.c
@@ -0,0 +1,251 @@
+/*
+ * storage_file_fs.c: storage file code for FS and directory handling
+ *
+ * Copyright (C) 2007-2018 Red Hat, Inc.
+ * Copyright (C) 2007-2008 Daniel P. Berrange
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library.  If not, see
+ * <http://www.gnu.org/licenses/>.
+ *
+ * Author: Daniel P. Berrange <berrange@redhat.com>
+ */
+
+#include <config.h>
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <string.h>
+
+#include "virerror.h"
+#include "storage_file_fs.h"
+#include "storage_util.h"
+#include "virstoragefilebackend.h"
+#include "vircommand.h"
+#include "viralloc.h"
+#include "virfile.h"
+#include "virlog.h"
+#include "virstring.h"
+
+#define VIR_FROM_THIS VIR_FROM_STORAGE
+
+VIR_LOG_INIT("storage.storage_backend_fs");
+
+
+typedef struct _virStorageFileBackendFsPriv virStorageFileBackendFsPriv;
+typedef virStorageFileBackendFsPriv *virStorageFileBackendFsPrivPtr;
+
+struct _virStorageFileBackendFsPriv {
+    char *canonpath; /* unique file identifier (canonical path) */
+};
+
+
+static void
+virStorageFileBackendFileDeinit(virStorageSourcePtr src)
+{
+    VIR_DEBUG("deinitializing FS storage file %p (%s:%s)", src,
+              virStorageTypeToString(virStorageSourceGetActualType(src)),
+              src->path);
+
+    virStorageFileBackendFsPrivPtr priv = src->drv->priv;
+
+    VIR_FREE(priv->canonpath);
+    VIR_FREE(priv);
+}
+
+
+static int
+virStorageFileBackendFileInit(virStorageSourcePtr src)
+{
+    virStorageFileBackendFsPrivPtr priv = NULL;
+
+    VIR_DEBUG("initializing FS storage file %p (%s:%s)[%u:%u]", src,
+              virStorageTypeToString(virStorageSourceGetActualType(src)),
+              src->path,
+              (unsigned int)src->drv->uid, (unsigned int)src->drv->gid);
+
+    if (VIR_ALLOC(priv) < 0)
+        return -1;
+
+    src->drv->priv = priv;
+
+    return 0;
+}
+
+
+static int
+virStorageFileBackendFileCreate(virStorageSourcePtr src)
+{
+    int fd = -1;
+    mode_t mode = S_IRUSR;
+
+    if (!src->readonly)
+        mode |= S_IWUSR;
+
+    if ((fd = virFileOpenAs(src->path, O_WRONLY | O_TRUNC | O_CREAT, mode,
+                            src->drv->uid, src->drv->gid, 0)) < 0) {
+        errno = -fd;
+        return -1;
+    }
+
+    VIR_FORCE_CLOSE(fd);
+    return 0;
+}
+
+
+static int
+virStorageFileBackendFileUnlink(virStorageSourcePtr src)
+{
+    return unlink(src->path);
+}
+
+
+static int
+virStorageFileBackendFileStat(virStorageSourcePtr src,
+                              struct stat *st)
+{
+    return stat(src->path, st);
+}
+
+
+static ssize_t
+virStorageFileBackendFileRead(virStorageSourcePtr src,
+                              size_t offset,
+                              size_t len,
+                              char **buf)
+{
+    int fd = -1;
+    ssize_t ret = -1;
+
+    if ((fd = virFileOpenAs(src->path, O_RDONLY, 0,
+                            src->drv->uid, src->drv->gid, 0)) < 0) {
+        virReportSystemError(-fd, _("Failed to open file '%s'"),
+                             src->path);
+        return -1;
+    }
+
+    if (offset > 0) {
+        if (lseek(fd, offset, SEEK_SET) == (off_t) -1) {
+            virReportSystemError(errno, _("cannot seek into '%s'"), src->path);
+            goto cleanup;
+        }
+    }
+
+    if ((ret = virFileReadHeaderFD(fd, len, buf)) < 0) {
+        virReportSystemError(errno,
+                             _("cannot read header '%s'"), src->path);
+        goto cleanup;
+    }
+
+ cleanup:
+    VIR_FORCE_CLOSE(fd);
+
+    return ret;
+}
+
+
+static const char *
+virStorageFileBackendFileGetUniqueIdentifier(virStorageSourcePtr src)
+{
+    virStorageFileBackendFsPrivPtr priv = src->drv->priv;
+
+    if (!priv->canonpath) {
+        if (!(priv->canonpath = canonicalize_file_name(src->path))) {
+            virReportSystemError(errno, _("can't canonicalize path '%s'"),
+                                 src->path);
+            return NULL;
+        }
+    }
+
+    return priv->canonpath;
+}
+
+
+static int
+virStorageFileBackendFileAccess(virStorageSourcePtr src,
+                                int mode)
+{
+    return virFileAccessibleAs(src->path, mode,
+                               src->drv->uid, src->drv->gid);
+}
+
+
+static int
+virStorageFileBackendFileChown(const virStorageSource *src,
+                               uid_t uid,
+                               gid_t gid)
+{
+    return chown(src->path, uid, gid);
+}
+
+
+virStorageFileBackend virStorageFileBackendFile = {
+    .type = VIR_STORAGE_TYPE_FILE,
+
+    .backendInit = virStorageFileBackendFileInit,
+    .backendDeinit = virStorageFileBackendFileDeinit,
+
+    .storageFileCreate = virStorageFileBackendFileCreate,
+    .storageFileUnlink = virStorageFileBackendFileUnlink,
+    .storageFileStat = virStorageFileBackendFileStat,
+    .storageFileRead = virStorageFileBackendFileRead,
+    .storageFileAccess = virStorageFileBackendFileAccess,
+    .storageFileChown = virStorageFileBackendFileChown,
+
+    .storageFileGetUniqueIdentifier = virStorageFileBackendFileGetUniqueIdentifier,
+};
+
+
+virStorageFileBackend virStorageFileBackendBlock = {
+    .type = VIR_STORAGE_TYPE_BLOCK,
+
+    .backendInit = virStorageFileBackendFileInit,
+    .backendDeinit = virStorageFileBackendFileDeinit,
+
+    .storageFileStat = virStorageFileBackendFileStat,
+    .storageFileRead = virStorageFileBackendFileRead,
+    .storageFileAccess = virStorageFileBackendFileAccess,
+    .storageFileChown = virStorageFileBackendFileChown,
+
+    .storageFileGetUniqueIdentifier = virStorageFileBackendFileGetUniqueIdentifier,
+};
+
+
+virStorageFileBackend virStorageFileBackendDir = {
+    .type = VIR_STORAGE_TYPE_DIR,
+
+    .backendInit = virStorageFileBackendFileInit,
+    .backendDeinit = virStorageFileBackendFileDeinit,
+
+    .storageFileAccess = virStorageFileBackendFileAccess,
+    .storageFileChown = virStorageFileBackendFileChown,
+
+    .storageFileGetUniqueIdentifier = virStorageFileBackendFileGetUniqueIdentifier,
+};
+
+
+int
+virStorageFileFsRegister(void)
+{
+    if (virStorageFileBackendRegister(&virStorageFileBackendFile) < 0)
+        return -1;
+
+    if (virStorageFileBackendRegister(&virStorageFileBackendBlock) < 0)
+        return -1;
+
+    if (virStorageFileBackendRegister(&virStorageFileBackendDir) < 0)
+        return -1;
+
+    return 0;
+}
diff --git a/src/storage/storage_file_fs.h b/src/storage/storage_file_fs.h
new file mode 100644
index 0000000000..c5d748c64d
--- /dev/null
+++ b/src/storage/storage_file_fs.h
@@ -0,0 +1,29 @@
+/*
+ * storage_file_fs.h: storage file code for FS and directory handling
+ *
+ * Copyright (C) 2007-2018 Red Hat, Inc.
+ * Copyright (C) 2007-2008 Daniel P. Berrange
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library.  If not, see
+ * <http://www.gnu.org/licenses/>.
+ *
+ * Author: Daniel P. Berrange <berrange@redhat.com>
+ */
+
+#ifndef __VIR_STORAGE_FILE_FS_H__
+# define __VIR_STORAGE_FILE_FS_H__
+
+int virStorageFileFsRegister(void);
+
+#endif /* __VIR_STORAGE_FILE_FS_H__ */
-- 
2.14.3

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH 3/6] storage: split fs storage file code from storage driver backend
Posted by Peter Krempa 7 years ago
On Wed, Apr 25, 2018 at 16:52:40 +0100, Daniel Berrange wrote:
> The storage file code needs to be run in the hypervisor drivers, while
> the storage backend code needs to be run in the storage driver. Split
> the source code as a preparatory step for creating separate loadable
> modules.
> 
> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> ---
>  src/storage/Makefile.inc.am      |   2 +
>  src/storage/storage_backend_fs.c | 210 +-------------------------------
>  src/storage/storage_file_fs.c    | 251 +++++++++++++++++++++++++++++++++++++++
>  src/storage/storage_file_fs.h    |  29 +++++
>  4 files changed, 285 insertions(+), 207 deletions(-)
>  create mode 100644 src/storage/storage_file_fs.c
>  create mode 100644 src/storage/storage_file_fs.h

[...]

> diff --git a/src/storage/storage_backend_fs.c b/src/storage/storage_backend_fs.c
> index 9b0fcf92c5..bface86b43 100644
> --- a/src/storage/storage_backend_fs.c
> +++ b/src/storage/storage_backend_fs.c
> @@ -1,7 +1,7 @@
>  /*
>   * storage_backend_fs.c: storage backend for FS and directory handling
>   *
> - * Copyright (C) 2007-2015 Red Hat, Inc.
> + * Copyright (C) 2007-2018 Red Hat, Inc.

Does just deleting a bunch of code warrant a copyright bump?

>   * Copyright (C) 2007-2008 Daniel P. Berrange
>   *
>   * This library is free software; you can redistribute it and/or
> @@ -28,21 +28,15 @@
>  #include <stdio.h>
>  #include <errno.h>
>  #include <fcntl.h>
> -#include <unistd.h>
>  #include <string.h>
>  
> -#include <libxml/parser.h>
> -#include <libxml/tree.h>
> -#include <libxml/xpath.h>

These are not added in the src/storage/storage_file_fs.c, so they are a
separate cleanup.

> -
>  #include "virerror.h"
>  #include "storage_backend_fs.h"
> +#include "storage_file_fs.h"
>  #include "storage_util.h"
>  #include "storage_conf.h"
> -#include "virstoragefilebackend.h"
>  #include "vircommand.h"
>  #include "viralloc.h"
> -#include "virxml.h"
>  #include "virfile.h"
>  #include "virlog.h"
>  #include "virstring.h"

[...]

> diff --git a/src/storage/storage_file_fs.c b/src/storage/storage_file_fs.c
> new file mode 100644
> index 0000000000..c8d87514eb
> --- /dev/null
> +++ b/src/storage/storage_file_fs.c
> @@ -0,0 +1,251 @@
> +/*
> + * storage_file_fs.c: storage file code for FS and directory handling
> + *
> + * Copyright (C) 2007-2018 Red Hat, Inc.
> + * Copyright (C) 2007-2008 Daniel P. Berrange

AFAIK there's no code moved which the last line would apply to.

> + * This library is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU Lesser General Public
> + * License as published by the Free Software Foundation; either
> + * version 2.1 of the License, or (at your option) any later version.
> + *
> + * This library is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> + * Lesser General Public License for more details.
> + *
> + * You should have received a copy of the GNU Lesser General Public
> + * License along with this library.  If not, see
> + * <http://www.gnu.org/licenses/>.
> + *
> + * Author: Daniel P. Berrange <berrange@redhat.com>
> + */
> +
> +#include <config.h>

[...]

> diff --git a/src/storage/storage_file_fs.h b/src/storage/storage_file_fs.h
> new file mode 100644
> index 0000000000..c5d748c64d
> --- /dev/null
> +++ b/src/storage/storage_file_fs.h
> @@ -0,0 +1,29 @@
> +/*
> + * storage_file_fs.h: storage file code for FS and directory handling
> + *
> + * Copyright (C) 2007-2018 Red Hat, Inc.
> + * Copyright (C) 2007-2008 Daniel P. Berrange

As previously, the only added function is new in this commit.

> + *
> + * This library is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU Lesser General Public
> + * License as published by the Free Software Foundation; either
> + * version 2.1 of the License, or (at your option) any later version.
> + *
> + * This library is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> + * Lesser General Public License for more details.
> + *
> + * You should have received a copy of the GNU Lesser General Public
> + * License along with this library.  If not, see
> + * <http://www.gnu.org/licenses/>.
> + *
> + * Author: Daniel P. Berrange <berrange@redhat.com>
> + */


ACK
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH 3/6] storage: split fs storage file code from storage driver backend
Posted by Daniel P. Berrangé 7 years ago
On Thu, Apr 26, 2018 at 09:48:21AM +0200, Peter Krempa wrote:
> On Wed, Apr 25, 2018 at 16:52:40 +0100, Daniel Berrange wrote:
> > The storage file code needs to be run in the hypervisor drivers, while
> > the storage backend code needs to be run in the storage driver. Split
> > the source code as a preparatory step for creating separate loadable
> > modules.
> > 
> > Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> > ---
> >  src/storage/Makefile.inc.am      |   2 +
> >  src/storage/storage_backend_fs.c | 210 +-------------------------------
> >  src/storage/storage_file_fs.c    | 251 +++++++++++++++++++++++++++++++++++++++
> >  src/storage/storage_file_fs.h    |  29 +++++
> >  4 files changed, 285 insertions(+), 207 deletions(-)
> >  create mode 100644 src/storage/storage_file_fs.c
> >  create mode 100644 src/storage/storage_file_fs.h
> 
> [...]
> 
> > diff --git a/src/storage/storage_backend_fs.c b/src/storage/storage_backend_fs.c
> > index 9b0fcf92c5..bface86b43 100644
> > --- a/src/storage/storage_backend_fs.c
> > +++ b/src/storage/storage_backend_fs.c
> > @@ -1,7 +1,7 @@
> >  /*
> >   * storage_backend_fs.c: storage backend for FS and directory handling
> >   *
> > - * Copyright (C) 2007-2015 Red Hat, Inc.
> > + * Copyright (C) 2007-2018 Red Hat, Inc.
> 
> Does just deleting a bunch of code warrant a copyright bump?

Ok, will revert

> 
> >   * Copyright (C) 2007-2008 Daniel P. Berrange
> >   *
> >   * This library is free software; you can redistribute it and/or
> > @@ -28,21 +28,15 @@
> >  #include <stdio.h>
> >  #include <errno.h>
> >  #include <fcntl.h>
> > -#include <unistd.h>
> >  #include <string.h>
> >  
> > -#include <libxml/parser.h>
> > -#include <libxml/tree.h>
> > -#include <libxml/xpath.h>
> 
> These are not added in the src/storage/storage_file_fs.c, so they are a
> separate cleanup.

Yes, will split.

> 
> > -
> >  #include "virerror.h"
> >  #include "storage_backend_fs.h"
> > +#include "storage_file_fs.h"
> >  #include "storage_util.h"
> >  #include "storage_conf.h"
> > -#include "virstoragefilebackend.h"
> >  #include "vircommand.h"
> >  #include "viralloc.h"
> > -#include "virxml.h"
> >  #include "virfile.h"
> >  #include "virlog.h"
> >  #include "virstring.h"
> 
> [...]
> 
> > diff --git a/src/storage/storage_file_fs.c b/src/storage/storage_file_fs.c
> > new file mode 100644
> > index 0000000000..c8d87514eb
> > --- /dev/null
> > +++ b/src/storage/storage_file_fs.c
> > @@ -0,0 +1,251 @@
> > +/*
> > + * storage_file_fs.c: storage file code for FS and directory handling
> > + *
> > + * Copyright (C) 2007-2018 Red Hat, Inc.
> > + * Copyright (C) 2007-2008 Daniel P. Berrange
> 
> AFAIK there's no code moved which the last line would apply to.

Yes, will change.


Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list