]>
Commit | Line | Data |
---|---|---|
24d97a95 CW |
1 | From stable-bounces@linux.kernel.org Mon Mar 6 20:28:25 2006 |
2 | Date: Mon, 06 Mar 2006 20:23:33 -0800 | |
3 | From: Roland Dreier <rdreier@cisco.com> | |
4 | To: stable@kernel.org | |
2bd45b63 | 5 | Subject: IB/srp: Don't send task management commands after target removal |
24d97a95 CW |
6 | |
7 | Just fail abort and reset requests that come in after we've already | |
8 | decided to remove a target. This fixes a nasty crash if a storage | |
9 | target goes away. | |
10 | ||
11 | Signed-off-by: Roland Dreier <rolandd@cisco.com> | |
12 | Signed-off-by: Chris Wright <chrisw@sous-sol.org> | |
5390119a | 13 | Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
24d97a95 CW |
14 | --- |
15 | ||
16 | This is upstream in Linus's tree as 1285b3a0b0aa2391ac6f6939e6737203c8220f68 | |
17 | ||
18 | drivers/infiniband/ulp/srp/ib_srp.c | 6 ++++++ | |
5390119a | 19 | 1 file changed, 6 insertions(+) |
24d97a95 CW |
20 | |
21 | --- linux-2.6.15.6.orig/drivers/infiniband/ulp/srp/ib_srp.c | |
22 | +++ linux-2.6.15.6/drivers/infiniband/ulp/srp/ib_srp.c | |
23 | @@ -1154,6 +1154,12 @@ static int srp_send_tsk_mgmt(struct scsi | |
24 | ||
25 | spin_lock_irq(target->scsi_host->host_lock); | |
26 | ||
27 | + if (target->state == SRP_TARGET_DEAD || | |
28 | + target->state == SRP_TARGET_REMOVED) { | |
29 | + scmnd->result = DID_BAD_TARGET << 16; | |
30 | + goto out; | |
31 | + } | |
32 | + | |
33 | if (scmnd->host_scribble == (void *) -1L) | |
34 | goto out; | |
35 |