Ver Fonte

[SCSI] zfcp: Wait for port scan to complete when setting adapter online

Attaching a unit immediately after setting the adapter online should
be possible. The problem right now is that the port_scan runs from a
workqueue and has not finished when the set_online call returns and
the sysfs structures for the ports are not available yet. Fix that by
waiting for the port scan to complete.

Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Christof Schmitt há 16 anos atrás
pai
commit
77fd9494bc
1 ficheiros alterados com 3 adições e 1 exclusões
  1. 3 1
      drivers/s390/scsi/zfcp_ccw.c

+ 3 - 1
drivers/s390/scsi/zfcp_ccw.c

@@ -116,7 +116,9 @@ static int zfcp_ccw_set_online(struct ccw_device *ccw_device)
 	zfcp_erp_adapter_reopen(adapter, ZFCP_STATUS_COMMON_ERP_FAILED, 85,
 	zfcp_erp_adapter_reopen(adapter, ZFCP_STATUS_COMMON_ERP_FAILED, 85,
 				NULL);
 				NULL);
 	zfcp_erp_wait(adapter);
 	zfcp_erp_wait(adapter);
-	goto out;
+	up(&zfcp_data.config_sema);
+	flush_work(&adapter->scan_work);
+	return 0;
 
 
  out_scsi_register:
  out_scsi_register:
 	zfcp_erp_thread_kill(adapter);
 	zfcp_erp_thread_kill(adapter);