<br><font size=2 face="sans-serif">The 2nd and 3rd hunk show the only double-closed
file descriptor code part that I found while trying to clean up close().
The first hunk seems a harmless cleanup in that same file.</font>
<br>
<br><font size=2 face="sans-serif">Signed-off-by: Stefan Berger <stefanb@us.ibm.com></font>
<br>
<br><font size=2 face="Courier New">Index: Stefan/src/storage/storage_backend_logical.c</font>
<br><font size=2 face="Courier New">===================================================================</font>
<br><font size=2 face="Courier New">--- Stefan.orig/src/storage/storage_backend_logical.c</font>
<br><font size=2 face="Courier New">+++ Stefan/src/storage/storage_backend_logical.c</font>
<br><font size=2 face="Courier New">@@ -37,6 +37,7 @@</font>
<br><font size=2 face="Courier New"> #include "util.h"</font>
<br><font size=2 face="Courier New"> #include "memory.h"</font>
<br><font size=2 face="Courier New"> #include "logging.h"</font>
<br><font size=2 face="Courier New">+#include "files.h"</font>
<br><font size=2 face="Courier New"> </font>
<br><font size=2 face="Courier New"> #define VIR_FROM_THIS VIR_FROM_STORAGE</font>
<br><font size=2 face="Courier New"> </font>
<br><font size=2 face="Courier New">@@ -408,10 +409,10 @@ virStorageBackendLogicalBuildPool(virCon</font>
<br><font size=2 face="Courier New">         
   virReportSystemError(errno,</font>
<br><font size=2 face="Courier New">         
                     
  _("cannot clear device header of '%s'"),</font>
<br><font size=2 face="Courier New">         
                     
  pool->def->source.devices[i].path);</font>
<br><font size=2 face="Courier New">-          
 close(fd);</font>
<br><font size=2 face="Courier New">+          
 VIR_FORCE_CLOSE(fd);</font>
<br><font size=2 face="Courier New">         
   goto cleanup;</font>
<br><font size=2 face="Courier New">         }</font>
<br><font size=2 face="Courier New">-        if (close(fd)
< 0) {</font>
<br><font size=2 face="Courier New">+        if (VIR_CLOSE(fd)
< 0) {</font>
<br><font size=2 face="Courier New">         
   virReportSystemError(errno,</font>
<br><font size=2 face="Courier New">         
                     
  _("cannot close device '%s'"),</font>
<br><font size=2 face="Courier New">         
                     
  pool->def->source.devices[i].path);</font>
<br><font size=2 face="Courier New">@@ -622,7 +623,7 @@ virStorageBackendLogicalCreateVol(virCon</font>
<br><font size=2 face="Courier New">         goto
cleanup;</font>
<br><font size=2 face="Courier New">     }</font>
<br><font size=2 face="Courier New"> </font>
<br><font size=2 face="Courier New">-    if (close(fd) < 0)
{</font>
<br><font size=2 face="Courier New">+    if (VIR_CLOSE(fd) <
0) {</font>
<br><font size=2 face="Courier New">         virReportSystemError(errno,</font>
<br><font size=2 face="Courier New">         
                    _("cannot
close file '%s'"),</font>
<br><font size=2 face="Courier New">         
                    vol->target.path);</font>
<br><font size=2 face="Courier New">@@ -641,8 +642,7 @@ virStorageBackendLogicalCreateVol(virCon</font>
<br><font size=2 face="Courier New">     return 0;</font>
<br><font size=2 face="Courier New"> </font>
<br><font size=2 face="Courier New">  cleanup:</font>
<br><font size=2 face="Courier New">-    if (fd != -1)</font>
<br><font size=2 face="Courier New">-        close(fd);</font>
<br><font size=2 face="Courier New">+    VIR_FORCE_CLOSE(fd);</font>
<br><font size=2 face="Courier New">     virStorageBackendLogicalDeleteVol(conn,
pool, vol, 0);</font>
<br><font size=2 face="Courier New">     return -1;</font>
<br><font size=2 face="Courier New"> }</font>
<br>