On 04/02/2015 06:10 AM, Erik Skultety wrote: > Properly format storage pool state XML. Your previous patch 3/7 had a better commit message: Introduce virStoragePoolSaveStatus to properly format the status XML in the same manner as virStoragePoolDefFormat, except for adding a <poolstatus> ... </poolstatus> around the definition. This is similar to virNetworkObjFormat used to save the live/active network information. > > Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1177733 By itself - no it doesn't solve the bug (same for 4 and 5) > --- > src/conf/storage_conf.c | 35 +++++++++++++++++++++++++++++++++++ > src/conf/storage_conf.h | 4 +++- > src/libvirt_private.syms | 1 + > 3 files changed, 39 insertions(+), 1 deletion(-) > > diff --git a/src/conf/storage_conf.c b/src/conf/storage_conf.c > index 73b937e..ee564f2 100644 > --- a/src/conf/storage_conf.c > +++ b/src/conf/storage_conf.c > @@ -1928,6 +1928,41 @@ static int virStoragePoolSaveXML(const char *path, > > return ret; > } > + > + > +int virStoragePoolSaveState(const char *stateFile, > + virStoragePoolDefPtr def) Again it's int virStorage... ACK with those adjustments. John FYI: Coverity is happy with all 6 patches... > +{ > + virBuffer buf = VIR_BUFFER_INITIALIZER; > + int ret = -1; > + char *xml; > + > + virBufferAddLit(&buf, "<poolstatus>\n"); > + virBufferAdjustIndent(&buf, 2); > + > + if (virStoragePoolDefFormatBuf(&buf, def) < 0) > + goto error; > + > + virBufferAdjustIndent(&buf, -2); > + virBufferAddLit(&buf, "</poolstatus>\n"); > + > + if (virBufferCheckError(&buf) < 0) > + goto error; > + > + if (!(xml = virBufferContentAndReset(&buf))) > + goto error; > + > + if (virStoragePoolSaveXML(stateFile, def, xml)) > + goto error; > + > + ret = 0; > + > + error: > + VIR_FREE(xml); > + return ret; > +} > + > + > int > virStoragePoolSaveConfig(const char *configFile, > virStoragePoolDefPtr def) > diff --git a/src/conf/storage_conf.h b/src/conf/storage_conf.h > index 4584075..da378b7 100644 > --- a/src/conf/storage_conf.h > +++ b/src/conf/storage_conf.h > @@ -371,7 +371,9 @@ virStoragePoolObjPtr > virStoragePoolObjAssignDef(virStoragePoolObjListPtr pools, > virStoragePoolDefPtr def); > > -int virStoragePoolSaveConfig(const char *configDir, > +int virStoragePoolSaveState(const char *stateFile, > + virStoragePoolDefPtr def); > +int virStoragePoolSaveConfig(const char *configFile, > virStoragePoolDefPtr def); > int virStoragePoolObjSaveDef(virStorageDriverStatePtr driver, > virStoragePoolObjPtr pool, > diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms > index 9e71b1a..56acb01 100644 > --- a/src/libvirt_private.syms > +++ b/src/libvirt_private.syms > @@ -813,6 +813,7 @@ virStoragePoolObjRemove; > virStoragePoolObjSaveDef; > virStoragePoolObjUnlock; > virStoragePoolSaveConfig; > +virStoragePoolSaveState; > virStoragePoolSourceAdapterTypeFromString; > virStoragePoolSourceAdapterTypeToString; > virStoragePoolSourceClear; > -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list