Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 124674
b: refs/heads/master
c: f78badb
h: refs/heads/master
v: v3
  • Loading branch information
James Smart authored and James Bottomley committed Dec 29, 2008
1 parent 49c295b commit b0030ec
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 4 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 73208dfd7ab19f379d73e8a0fbf30f92c203e5e8
refs/heads/master: f78badb1ae07e7f8b835ab2ea0b456ed3fc4caf4
13 changes: 10 additions & 3 deletions trunk/drivers/scsi/scsi_transport_fc.c
Original file line number Diff line number Diff line change
Expand Up @@ -3012,6 +3012,16 @@ fc_timeout_deleted_rport(struct work_struct *work)
rport->port_state = FC_PORTSTATE_NOTPRESENT;
rport->flags &= ~FC_RPORT_FAST_FAIL_TIMEDOUT;

/*
* Pre-emptively kill I/O rather than waiting for the work queue
* item to teardown the starget. (FCOE libFC folks prefer this
* and to have the rport_port_id still set when it's done).
*/
spin_unlock_irqrestore(shost->host_lock, flags);
fc_terminate_rport_io(rport);

BUG_ON(rport->port_state != FC_PORTSTATE_NOTPRESENT);

/* remove the identifiers that aren't used in the consisting binding */
switch (fc_host->tgtid_bind_type) {
case FC_TGTID_BIND_BY_WWPN:
Expand All @@ -3035,9 +3045,6 @@ fc_timeout_deleted_rport(struct work_struct *work)
* went away and didn't come back - we'll remove
* all attached scsi devices.
*/
spin_unlock_irqrestore(shost->host_lock, flags);

scsi_target_unblock(&rport->dev);
fc_queue_work(shost, &rport->stgt_delete_work);
}

Expand Down

0 comments on commit b0030ec

Please sign in to comment.