diff options
| author | Roland Dreier <rolandd@cisco.com> | 2006-03-03 18:47:25 -0500 |
|---|---|---|
| committer | Roland Dreier <rolandd@cisco.com> | 2006-03-03 20:50:16 -0500 |
| commit | 1285b3a0b0aa2391ac6f6939e6737203c8220f68 (patch) | |
| tree | b0041f55811fcda35614e6c04cb67e251d05a51f | |
| parent | c499ec24c31edf270e777a868ffd0daddcfe7ebd (diff) | |
IB/srp: Don't send task management commands after target removal
Just fail abort and reset requests that come in after we've already
decided to remove a target.
Signed-off-by: Roland Dreier <rolandd@cisco.com>
| -rw-r--r-- | drivers/infiniband/ulp/srp/ib_srp.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/infiniband/ulp/srp/ib_srp.c b/drivers/infiniband/ulp/srp/ib_srp.c index 2d2d4ac3525a..960dae5c87d1 100644 --- a/drivers/infiniband/ulp/srp/ib_srp.c +++ b/drivers/infiniband/ulp/srp/ib_srp.c | |||
| @@ -1155,6 +1155,12 @@ static int srp_send_tsk_mgmt(struct scsi_cmnd *scmnd, u8 func) | |||
| 1155 | 1155 | ||
| 1156 | spin_lock_irq(target->scsi_host->host_lock); | 1156 | spin_lock_irq(target->scsi_host->host_lock); |
| 1157 | 1157 | ||
| 1158 | if (target->state == SRP_TARGET_DEAD || | ||
| 1159 | target->state == SRP_TARGET_REMOVED) { | ||
| 1160 | scmnd->result = DID_BAD_TARGET << 16; | ||
| 1161 | goto out; | ||
| 1162 | } | ||
| 1163 | |||
| 1158 | if (scmnd->host_scribble == (void *) -1L) | 1164 | if (scmnd->host_scribble == (void *) -1L) |
| 1159 | goto out; | 1165 | goto out; |
| 1160 | 1166 | ||
