[SCSI] libsas: fix domain_device leak

Arrange for the deallocation of a struct domain_device object when it no
longer has:
1/ any children
2/ references by any scsi_targets
3/ references by a lldd

The comment about domain_device lifetime in
Documentation/scsi/libsas.txt is stale as it appears mainline never had
a version of a struct domain_device that was registered as a kobject.
We now manage domain_device reference counts on behalf of external
agents.

Reviewed-by: Jack Wang <jack_wang@usish.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
This commit is contained in:
Dan Williams
2011-11-17 17:59:47 -08:00
committed by James Bottomley
parent 6f4e75a49f
commit 735f7d2fed
6 changed files with 56 additions and 41 deletions
+1
View File
@@ -206,6 +206,7 @@ struct domain_device {
void *lldd_dev;
int gone;
struct kref kref;
};
struct sas_discovery_event {