<meta http-equiv="Content-Type" content="text/html; charset=GB18030"><div><div style="font-family: "Microsoft YaHei UI"; font-variant-numeric: normal; font-variant-east-asian: normal; line-height: 21px; widows: 1;">Hi administrator,</div><div style="font-family: "Microsoft YaHei UI"; font-variant-numeric: normal; font-variant-east-asian: normal; line-height: 21px; widows: 1;"><span class="Apple-tab-span" style="white-space: pre;">  </span>I am a cloud compute developer. I need some help from you about libvirt.</div><div style="font-family: "Microsoft YaHei UI"; font-variant-numeric: normal; font-variant-east-asian: normal; line-height: 21px; widows: 1;"><span class="Apple-tab-span" style="white-space: pre;">       </span>I have a work to modify a image file which is saved by virDomainSave() or virDomainSaveFlags(). <span style="font-size: 10.5pt; line-height: 1.5; background-color: transparent;">So virDomainSaveImageGetXMLDesc() and virDomainSaveImageDefineXML() are APIs I choosed to do.</span></div><div style="font-family: "Microsoft YaHei UI"; font-variant-numeric: normal; font-variant-east-asian: normal; line-height: 21px; widows: 1;"><span class="Apple-tab-span" style="white-space: pre;">      </span>Because I found a sentence: A save file can be inspected or modified slightly with virDomainSaveImageGetXMLDesc() <span style="font-size: 10.5pt; line-height: 1.5; background-color: transparent;">and virDomainSaveImageDefineXML().</span></div><div style="font-family: "Microsoft YaHei UI"; font-variant-numeric: normal; font-variant-east-asian: normal; line-height: 21px; widows: 1;"><span class="Apple-tab-span" style="white-space: pre;">       </span>But an error is happened when I do like that.  <span style="font-size: 10.5pt; line-height: 1.5; background-color: transparent;">libvirt: QEMU Driver error: operation failed: new xml too large to fit in file.</span></div><div style="font-family: "Microsoft YaHei UI"; font-variant-numeric: normal; font-variant-east-asian: normal; line-height: 21px; widows: 1;"><span class="Apple-tab-span" style="white-space: pre;">     </span></div><div style="font-family: "Microsoft YaHei UI"; font-variant-numeric: normal; font-variant-east-asian: normal; line-height: 21px; widows: 1;"><span class="Apple-tab-span" style="white-space: pre;">       </span>I found that if I increase strlen(xml_old) to strlen(xml_new).</div><div style="font-family: "Microsoft YaHei UI"; font-variant-numeric: normal; font-variant-east-asian: normal; line-height: 21px; widows: 1;"><span class="Apple-tab-span" style="white-space: pre;"> </span>if (strlen(xml_new) - strlen(xml_old) <= 29) {</div><div style="font-family: "Microsoft YaHei UI"; font-variant-numeric: normal; font-variant-east-asian: normal; line-height: 21px; widows: 1;"><span class="Apple-tab-span" style="white-space: pre;">              </span>this is right;</div><div style="font-family: "Microsoft YaHei UI"; font-variant-numeric: normal; font-variant-east-asian: normal; line-height: 21px; widows: 1;"><span class="Apple-tab-span" style="white-space: pre;"> </span>}</div><div style="font-family: "Microsoft YaHei UI"; font-variant-numeric: normal; font-variant-east-asian: normal; line-height: 21px; widows: 1;"><span class="Apple-tab-span" style="white-space: pre;">      </span>but if (strlen(xml_new) - strlen(xml_old) >= 50) {</div><div style="font-family: "Microsoft YaHei UI"; font-variant-numeric: normal; font-variant-east-asian: normal; line-height: 21px; widows: 1;"><span class="Apple-tab-span" style="white-space: pre;">          </span>this is error;</div><div style="font-family: "Microsoft YaHei UI"; font-variant-numeric: normal; font-variant-east-asian: normal; line-height: 21px; widows: 1;"><span class="Apple-tab-span" style="white-space: pre;"> </span>}</div><div style="font-family: "Microsoft YaHei UI"; font-variant-numeric: normal; font-variant-east-asian: normal; line-height: 21px; widows: 1;"><span class="Apple-tab-span" style="white-space: pre;">      </span>But I don't choose to find an accurate number.  I think this value will be affected by some factors.</div><div style="font-family: "Microsoft YaHei UI"; font-variant-numeric: normal; font-variant-east-asian: normal; line-height: 21px; widows: 1;"><span class="Apple-tab-span" style="white-space: pre;">      </span>For example: memory alignment, range safety or other rules.</div><div style="font-family: "Microsoft YaHei UI"; font-variant-numeric: normal; font-variant-east-asian: normal; line-height: 21px; widows: 1;"><br></div><div style="font-family: "Microsoft YaHei UI"; font-variant-numeric: normal; font-variant-east-asian: normal; line-height: 21px; widows: 1;"><span class="Apple-tab-span" style="white-space: pre;">       </span>++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++</div><div style="font-family: "Microsoft YaHei UI"; font-variant-numeric: normal; font-variant-east-asian: normal; line-height: 21px; widows: 1;"><span class="Apple-tab-span" style="white-space: pre;">       </span>+                <span style="font-size: 10.5pt; line-height: 1.5; background-color: transparent;"> </span><span style="font-size: 10.5pt; line-height: 1.5; background-color: transparent;">                                       </span><span style="font-size: 10.5pt; line-height: 1.5; background-color: transparent;"> </span><span style="font-size: 10.5pt; line-height: 1.5; background-color: transparent;">  strlen(xml_old)                                                  +  free space  +</span></div><div style="font-family: "Microsoft YaHei UI"; font-variant-numeric: normal; font-variant-east-asian: normal; line-height: 21px; widows: 1;"><span class="Apple-tab-span" style="white-space: pre;">       </span>++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++</div><div style="font-family: "Microsoft YaHei UI"; font-variant-numeric: normal; font-variant-east-asian: normal; line-height: 21px; widows: 1;"><span class="Apple-tab-span" style="white-space: pre;">       </span>+                       <span style="font-size: 10.5pt; line-height: 1.5; background-color: transparent;">                                     </span><span style="font-size: 10.5pt; line-height: 1.5; background-color: transparent;"> strlen(xml_new)                                                                     +</span></div><div style="font-family: "Microsoft YaHei UI"; font-variant-numeric: normal; font-variant-east-asian: normal; line-height: 21px; widows: 1;"><span class="Apple-tab-span" style="white-space: pre;">    </span>++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++</div><div style="font-family: "Microsoft YaHei UI"; font-variant-numeric: normal; font-variant-east-asian: normal; line-height: 21px; widows: 1;"><span class="Apple-tab-span" style="white-space: pre;">       </span>I really want to know how long free space I can use. Can you convert slightly to a precise number?</div><div style="font-family: "Microsoft YaHei UI"; font-variant-numeric: normal; font-variant-east-asian: normal; line-height: 21px; widows: 1;"><span class="Apple-tab-span" style="white-space: pre;">     </span>Thank you for taking so long to read my Email.</div><div style="font-family: "Microsoft YaHei UI"; font-variant-numeric: normal; font-variant-east-asian: normal; line-height: 21px; widows: 1;"><span class="Apple-tab-span" style="white-space: pre;"> </span>Looking forward to your reply.</div><div style="font-family: "Microsoft YaHei UI"; font-variant-numeric: normal; font-variant-east-asian: normal; line-height: 21px; widows: 1;"><span class="Apple-tab-span" style="white-space: pre;"> </span></div><div style="font-family: "Microsoft YaHei UI"; font-variant-numeric: normal; font-variant-east-asian: normal; line-height: 21px; widows: 1;"><span class="Apple-tab-span" style="white-space: pre;">       </span>ps:</div><div style="font-family: "Microsoft YaHei UI"; font-variant-numeric: normal; font-variant-east-asian: normal; line-height: 21px; widows: 1;"><span class="Apple-tab-span" style="white-space: pre;">            </span>OS: CentOS7.4</div><div style="font-family: "Microsoft YaHei UI"; font-variant-numeric: normal; font-variant-east-asian: normal; line-height: 21px; widows: 1;"><span class="Apple-tab-span" style="white-space: pre;">          </span>libvirt: 4.5.0</div><div style="font-family: "Microsoft YaHei UI"; font-variant-numeric: normal; font-variant-east-asian: normal; line-height: 21px; widows: 1;"><span class="Apple-tab-span" style="white-space: pre;">         </span>hypervisor: KVM</div><div style="font-family: "Microsoft YaHei UI"; font-variant-numeric: normal; font-variant-east-asian: normal; line-height: 21px; widows: 1;"><span class="Apple-tab-span" style="white-space: pre;">        </span></div><div style="font-family: "Microsoft YaHei UI"; font-variant-numeric: normal; font-variant-east-asian: normal; line-height: 21px; widows: 1;"><span class="Apple-tab-span" style="white-space: pre;">       </span>Sincerely, </div><div style="font-family: "Microsoft YaHei UI"; font-variant-numeric: normal; font-variant-east-asian: normal; line-height: 21px; widows: 1;"><span class="Apple-tab-span" style="white-space: pre;">       </span>Vincent Wu</div></div>