On Fri, Feb 15, 2019 at 01:42:10PM +0100, Peter Krempa wrote:
To allow tracking a single virStorageSource in multiple structures
without extra hassle allow refcounting by turining it into an object.
Signed-off-by: Peter Krempa <pkrempa(a)redhat.com>
---
src/util/virstoragefile.c | 40 +++++++++++++++++++++++++++++----------
src/util/virstoragefile.h | 2 ++
2 files changed, 32 insertions(+), 10 deletions(-)
diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c
index 7f52a5fdc7..56c6510c5e 100644
--- a/src/util/virstoragefile.c
+++ b/src/util/virstoragefile.c
@@ -47,6 +47,8 @@
VIR_LOG_INIT("util.storagefile");
+static virClassPtr virStorageSourceClass;
+
VIR_ENUM_IMPL(virStorage, VIR_STORAGE_TYPE_LAST,
"none",
"file",
@@ -2558,30 +2560,48 @@ virStorageSourceClear(virStorageSourcePtr def)
virStorageSourceInitiatorClear(&def->initiator);
- memset(def, 0, sizeof(*def));
+ /* clear everything except the class header */
+ memset((char *) def + sizeof(def->parent), 0,
+ sizeof(*def) - sizeof(def->parent));
I've seen the reason behind this change, but I think a more thorough
explanation would be appreciated - in this case enhancing the commentary is
more useful than the commit message.
Reviewed-by: Erik Skultety <eskultet(a)redhat.com>