On 03/25/2013 12:43 PM, Osier Yang wrote:
It's only used by iscsi backend.
---
src/storage/storage_backend_iscsi.c | 39 ++++++++++++++++++++++++++++++++++++-
src/storage/storage_backend_scsi.c | 39 -------------------------------------
src/storage/storage_backend_scsi.h | 3 ---
3 files changed, 38 insertions(+), 43 deletions(-)
diff --git a/src/storage/storage_backend_iscsi.c b/src/storage/storage_backend_iscsi.c
index f374961..f6b76ed 100644
--- a/src/storage/storage_backend_iscsi.c
+++ b/src/storage/storage_backend_iscsi.c
@@ -23,6 +23,7 @@
#include <config.h>
+#include <dirent.h>
#include <sys/socket.h>
#include <netdb.h>
#include <sys/types.h>
@@ -401,6 +402,42 @@ cleanup:
return ret;
}
+static int
+virStorageBackendISCSIGetHostNumber(const char *sysfs_path,
+ uint32_t *host)
+{
+ int retval = 0;
+ DIR *sysdir = NULL;
+ struct dirent *dirent = NULL;
+
+ VIR_DEBUG("Finding host number from '%s'", sysfs_path);
+
+ virFileWaitForDevices();
+
+ sysdir = opendir(sysfs_path);
+
+ if (sysdir == NULL) {
+ virReportSystemError(errno,
+ _("Failed to opendir path '%s'"),
sysfs_path);
+ retval = -1;
+ goto out;
+ }
+
+ while ((dirent = readdir(sysdir))) {
+ if (STREQLEN(dirent->d_name, "target", strlen("target")))
{
+ if (sscanf(dirent->d_name,
+ "target%u:", host) != 1) {
+ VIR_DEBUG("Failed to parse target '%s'",
dirent->d_name);
+ retval = -1;
+ break;
+ }
+ }
+ }
+
+ closedir(sysdir);
+out:
+ return retval;
+}
static int
virStorageBackendISCSIFindLUs(virStoragePoolObjPtr pool,
@@ -416,7 +453,7 @@ virStorageBackendISCSIFindLUs(virStoragePoolObjPtr pool,
return -1;
}
- if (virStorageBackendSCSIGetHostNumber(sysfs_path, &host) < 0) {
+ if (virStorageBackendISCSIGetHostNumber(sysfs_path, &host) < 0) {
virReportSystemError(errno,
_("Failed to get host number for iSCSI session "
"with path '%s'"),
diff --git a/src/storage/storage_backend_scsi.c b/src/storage/storage_backend_scsi.c
index cc1ebe2..1bf6c0b 100644
--- a/src/storage/storage_backend_scsi.c
+++ b/src/storage/storage_backend_scsi.c
@@ -547,45 +547,6 @@ out:
return retval;
}
-
-int
-virStorageBackendSCSIGetHostNumber(const char *sysfs_path,
- uint32_t *host)
-{
- int retval = 0;
- DIR *sysdir = NULL;
- struct dirent *dirent = NULL;
-
- VIR_DEBUG("Finding host number from '%s'", sysfs_path);
-
- virFileWaitForDevices();
-
- sysdir = opendir(sysfs_path);
-
- if (sysdir == NULL) {
- virReportSystemError(errno,
- _("Failed to opendir path '%s'"),
sysfs_path);
- retval = -1;
- goto out;
- }
-
- while ((dirent = readdir(sysdir))) {
- if (STREQLEN(dirent->d_name, "target", strlen("target")))
{
- if (sscanf(dirent->d_name,
- "target%u:", host) != 1) {
- VIR_DEBUG("Failed to parse target '%s'",
dirent->d_name);
- retval = -1;
- break;
- }
- }
- }
-
- closedir(sysdir);
-out:
- return retval;
-}
-
-
static int
virStorageBackendSCSITriggerRescan(uint32_t host)
{
diff --git a/src/storage/storage_backend_scsi.h b/src/storage/storage_backend_scsi.h
index 1cdd0da..0984fd5 100644
--- a/src/storage/storage_backend_scsi.h
+++ b/src/storage/storage_backend_scsi.h
@@ -33,9 +33,6 @@
extern virStorageBackend virStorageBackendSCSI;
int
-virStorageBackendSCSIGetHostNumber(const char *sysfs_path,
- uint32_t *host);
-int
virStorageBackendSCSIFindLUs(virStoragePoolObjPtr pool,
uint32_t scanhost);
ACK (and FYI I did check - the backend_scsi.c module has other usages
of dirent.h)
John