[SCSI] sd: Fix refcounting
authorAlan Stern <stern@rowland.harvard.edu>
Fri, 4 Nov 2005 19:44:41 +0000 (14:44 -0500)
committerJames Bottomley <jejb@mulgrave.(none)>
Sat, 5 Nov 2005 15:52:24 +0000 (09:52 -0600)
commit39b7f1e25a412b0ef31e516cfc2fa4f40235f263
treeff9d9c44b6199624d87af0d4776f2ecfd18f2635
parent0ee957cb7a8f6e4fb8c6f943dbc451957bc0c6bc
[SCSI] sd: Fix refcounting

Currently the driver takes a reference only for requests coming by way
of the gendisk, not for requests coming by way of the struct device or
struct scsi_device.  Such requests can arrive in the rescan, flush,
and shutdown pathways.

The patch also makes the scsi_disk keep a reference to the underlying
scsi_device, and it erases the scsi_device's pointer to the scsi_disk
when the scsi_device is removed (since the pointer should no longer be
used).

This resolves Bugzilla entry #5237.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
drivers/scsi/sd.c