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@xxxxxxxxxxxx | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/ -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list