[SCSI] zfcp: Reorder registration of initial SCSI device
authorChristof Schmitt <christof.schmitt@de.ibm.com>
Mon, 30 Aug 2010 08:55:09 +0000 (10:55 +0200)
committerJames Bottomley <James.Bottomley@suse.de>
Thu, 9 Sep 2010 20:36:44 +0000 (15:36 -0500)
Make sure that the rport registration did complete and then register
SCSI device directly. Otherwise the unit_enqueue would race with the
call to zfcp_scsi_queue_unit_register.

Reviewed-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
drivers/s390/scsi/zfcp_aux.c

index 96fa1f53639425cdd5c872801bc1eaef864a443f..68df57157d48b82e33584c86929dfc045366ce8b 100644 (file)
@@ -73,13 +73,14 @@ static void __init zfcp_init_device_configure(char *busid, u64 wwpn, u64 lun)
        if (!port)
                goto out_port;
 
+       flush_work(&port->rport_work);
        unit = zfcp_unit_enqueue(port, lun);
        if (IS_ERR(unit))
                goto out_unit;
 
        zfcp_erp_unit_reopen(unit, 0, "auidc_1", NULL);
        zfcp_erp_wait(adapter);
-       flush_work(&unit->scsi_work);
+       zfcp_scsi_scan(unit);
 
 out_unit:
        put_device(&port->dev);