[SCSI] scsi_transport_fc: Introduce helper function for blocking scsi_eh
Move the duplicated code from FC LLDs to SCSI FC transport class. Acked-by: James Smart <james.smart@emulex.com> Acked-by: Giridhar Malavali <giridhar.malavali@qlogic.com> Acked-by: Abhijeet Joglekar <abjoglek@cisco.com> Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
This commit is contained in:

committed by
James Bottomley

parent
03b147083a
commit
65d430fa99
@@ -1225,22 +1225,6 @@ void fnic_terminate_rport_io(struct fc_rport *rport)
|
||||
|
||||
}
|
||||
|
||||
static void fnic_block_error_handler(struct scsi_cmnd *sc)
|
||||
{
|
||||
struct Scsi_Host *shost = sc->device->host;
|
||||
struct fc_rport *rport = starget_to_rport(scsi_target(sc->device));
|
||||
unsigned long flags;
|
||||
|
||||
spin_lock_irqsave(shost->host_lock, flags);
|
||||
while (rport->port_state == FC_PORTSTATE_BLOCKED) {
|
||||
spin_unlock_irqrestore(shost->host_lock, flags);
|
||||
msleep(1000);
|
||||
spin_lock_irqsave(shost->host_lock, flags);
|
||||
}
|
||||
spin_unlock_irqrestore(shost->host_lock, flags);
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* This function is exported to SCSI for sending abort cmnds.
|
||||
* A SCSI IO is represented by a io_req in the driver.
|
||||
@@ -1260,7 +1244,7 @@ int fnic_abort_cmd(struct scsi_cmnd *sc)
|
||||
DECLARE_COMPLETION_ONSTACK(tm_done);
|
||||
|
||||
/* Wait for rport to unblock */
|
||||
fnic_block_error_handler(sc);
|
||||
fc_block_scsi_eh(sc);
|
||||
|
||||
/* Get local-port, check ready and link up */
|
||||
lp = shost_priv(sc->device->host);
|
||||
@@ -1542,7 +1526,7 @@ int fnic_device_reset(struct scsi_cmnd *sc)
|
||||
DECLARE_COMPLETION_ONSTACK(tm_done);
|
||||
|
||||
/* Wait for rport to unblock */
|
||||
fnic_block_error_handler(sc);
|
||||
fc_block_scsi_eh(sc);
|
||||
|
||||
/* Get local-port, check ready and link up */
|
||||
lp = shost_priv(sc->device->host);
|
||||
|
Reference in New Issue
Block a user