From 6cf9a5bb90c39e00e97cc990da17bfdce890db8c Mon Sep 17 00:00:00 2001 From: Osier Yang Date: Tue, 26 Mar 2013 00:43:38 +0800 Subject: [PATCH] storage: Move virStorageBackendSCSIGetHostNumber into iscsi backend 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 f374961a4c..f6b76ed496 100644 --- a/src/storage/storage_backend_iscsi.c +++ b/src/storage/storage_backend_iscsi.c @@ -23,6 +23,7 @@ #include +#include #include #include #include @@ -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 f3ca464037..67cb01dd8c 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 1cdd0da504..0984fd5031 100644 --- a/src/storage/storage_backend_scsi.h +++ b/src/storage/storage_backend_scsi.h @@ -32,9 +32,6 @@ extern virStorageBackend virStorageBackendSCSI; -int -virStorageBackendSCSIGetHostNumber(const char *sysfs_path, - uint32_t *host); int virStorageBackendSCSIFindLUs(virStoragePoolObjPtr pool, uint32_t scanhost);