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.
Signed-off-by: Stefan Berger <stefanb@us.ibm.com>
Index: Stefan/src/storage/storage_backend_logical.c
===================================================================
--- Stefan.orig/src/storage/storage_backend_logical.c
+++ Stefan/src/storage/storage_backend_logical.c
@@ -37,6 +37,7 @@
#include "util.h"
#include "memory.h"
#include "logging.h"
+#include "files.h"
#define VIR_FROM_THIS VIR_FROM_STORAGE
@@ -408,10 +409,10 @@ virStorageBackendLogicalBuildPool(virCon
virReportSystemError(errno,
_("cannot clear device header of '%s'"),
pool->def->source.devices[i].path);
-
close(fd);
+
VIR_FORCE_CLOSE(fd);
goto cleanup;
}
- if (close(fd)
< 0) {
+ if (VIR_CLOSE(fd)
< 0) {
virReportSystemError(errno,
_("cannot close device '%s'"),
pool->def->source.devices[i].path);
@@ -622,7 +623,7 @@ virStorageBackendLogicalCreateVol(virCon
goto
cleanup;
}
- if (close(fd) < 0)
{
+ if (VIR_CLOSE(fd) <
0) {
virReportSystemError(errno,
_("cannot
close file '%s'"),
vol->target.path);
@@ -641,8 +642,7 @@ virStorageBackendLogicalCreateVol(virCon
return 0;
cleanup:
- if (fd != -1)
- close(fd);
+ VIR_FORCE_CLOSE(fd);
virStorageBackendLogicalDeleteVol(conn,
pool, vol, 0);
return -1;
}