summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Dillow <dillowda@ornl.gov>2008-01-03 21:34:49 -0500
committerJames Bottomley <James.Bottomley@HansenPartnership.com>2008-01-04 14:15:51 -0600
commit911833440b498e3e4fe2f12c1ae2bd44400c7004 (patch)
tree4076a238fb64737794702670ff3abffdd230d87c
parent439f61b9f9ebbf84fb7e6b3539fc3794e046bbb9 (diff)
downloadlinux-911833440b498e3e4fe2f12c1ae2bd44400c7004.tar.bz2
[SCSI] SRP transport: only remove our own entries
The SCSI SRP transport class currently iterates over all children devices of the host that is being removed in srp_remove_host(). However, not all of those children were created by the SRP transport, and removing them will cause corruption and an oops when their creator tries to remove them. Signed-off-by: David Dillow <dillowda@ornl.gov> Acked-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
-rw-r--r--drivers/scsi/scsi_transport_srp.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/scsi/scsi_transport_srp.c b/drivers/scsi/scsi_transport_srp.c
index 44a340bd937b..65c584db33bd 100644
--- a/drivers/scsi/scsi_transport_srp.c
+++ b/drivers/scsi/scsi_transport_srp.c
@@ -265,7 +265,8 @@ EXPORT_SYMBOL_GPL(srp_rport_del);
static int do_srp_rport_del(struct device *dev, void *data)
{
- srp_rport_del(dev_to_rport(dev));
+ if (scsi_is_srp_rport(dev))
+ srp_rport_del(dev_to_rport(dev));
return 0;
}