<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>