On Fri, Apr 03, 2009 at 04:53:07PM -0400, David Allan wrote:
The scsi host code does not currently rescan for new LUs when
refreshing
a pool. This patch causes a scan for new LUs on all targets. It does
not cause a LIP.
LIP ?
static int
+virStorageBackendSCSIStartPool(virConnectPtr conn ATTRIBUTE_UNUSED,
+ virStoragePoolObjPtr pool ATTRIBUTE_UNUSED)
+{
+ int retval = 0;
+
+ return retval;
+}
+
+
+static int
+virStorageBackendSCSIStopPool(virConnectPtr conn ATTRIBUTE_UNUSED,
+ virStoragePoolObjPtr pool ATTRIBUTE_UNUSED)
+{
+ int retval = 0;
+
+ return retval;
+}
Is that really better than suggesting the operation is not supported ?
[...]
+ if (virAsprintf(&path,
"/sys/class/scsi_host/host%u/scan", host) < 0) {
+ virReportOOMError(conn);
+ retval = -1;
+ goto out;
+ }
+
+ VIR_DEBUG(_("Scan trigger path is '%s'"), path);
+
+ fd = open(path, O_WRONLY);
+
+ if (fd < 0) {
+ virReportSystemError(conn, errno,
+ _("Could not open '%s' to trigger host
scan"),
+ path);
+ retval = -1;
+ goto cleanup;
+ }
+
+ if (write(fd,
+ LINUX_SYSFS_SCSI_HOST_SCAN_STRING,
+ sizeof(LINUX_SYSFS_SCSI_HOST_SCAN_STRING)) < 0) {
+
+ virReportSystemError(conn, errno,
+ _("Write to '%s' to trigger host scan
failed"),
+ path);
+ retval = -1;
+ goto cleanup;
+ }
+
+ goto out;
Seems to me that goto should be suppressed, it just generate a leak of path
On the other hand fd is leaked for sure ... This really need some
double-checking ;-)
+cleanup:
+ VIR_FREE(path);
+
+out:
+ VIR_DEBUG(_("Rescan of host %d complete"), host);
+ return retval;
+}
Otherwise, sounds fine, as long as this doesn't generate a bus reset.
Daniel
--
Daniel Veillard | libxml Gnome XML XSLT toolkit
http://xmlsoft.org/
daniel(a)veillard.com | Rpmfind RPM search engine
http://rpmfind.net/
http://veillard.com/ | virtualization library
http://libvirt.org/