[SCSI] fix memory leak in initialization
authorJames Bottomley <James.Bottomley@suse.de>
Fri, 2 Oct 2009 18:30:08 +0000 (13:30 -0500)
committerJames Bottomley <James.Bottomley@suse.de>
Tue, 13 Oct 2009 16:33:45 +0000 (11:33 -0500)
commit37e6ba00720c2786330dec2a9a5081e9e049422f
tree467ba2046d0d9ea9e855d2e40b9964a3412f99e1
parent2caa731819a633bec5a56736e64c562b7e193666
[SCSI] fix memory leak in initialization

The root cause of the problem is the fact that dev_set_name() now
allocates storage instead of using the original array within the kobj.
That means that the SCSI assumption that if you haven't made the
containing object or any sub objects visible, you can just destroy it
(and its component devices) lock stock and barrel becomes false.

Fix this by doing the get of sdev_dev at parent time and thus do an
extra put of it in scsi_destroy_sdev() (and all other destruction
without add paths).

Reported-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
drivers/scsi/scsi_scan.c
drivers/scsi/scsi_sysfs.c