diff options
author | Dave Dillow <dillowda@ornl.gov> | 2008-01-03 21:34:49 -0500 |
---|---|---|
committer | James Bottomley <James.Bottomley@HansenPartnership.com> | 2008-01-04 15:15:51 -0500 |
commit | 911833440b498e3e4fe2f12c1ae2bd44400c7004 (patch) | |
tree | 4076a238fb64737794702670ff3abffdd230d87c /drivers/scsi | |
parent | 439f61b9f9ebbf84fb7e6b3539fc3794e046bbb9 (diff) |
[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>
Diffstat (limited to 'drivers/scsi')
-rw-r--r-- | drivers/scsi/scsi_transport_srp.c | 3 |
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); | |||
265 | 265 | ||
266 | static int do_srp_rport_del(struct device *dev, void *data) | 266 | static int do_srp_rport_del(struct device *dev, void *data) |
267 | { | 267 | { |
268 | srp_rport_del(dev_to_rport(dev)); | 268 | if (scsi_is_srp_rport(dev)) |
269 | srp_rport_del(dev_to_rport(dev)); | ||
269 | return 0; | 270 | return 0; |
270 | } | 271 | } |
271 | 272 | ||