[SCSI] fix scsi process problems and clean up the target reap issues

In order to use the new execute_in_process_context() API, you have to
provide it with the work storage, which I do in SCSI in scsi_device and
scsi_target, but which also means that we can no longer queue up the
target reaps, so instead I moved the target to a state model which
allows target_alloc to detect if we've received a dying target and wait
for it to be gone.  Hopefully, this should also solve the target
namespace race.

Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Tento commit je obsažen v:
James Bottomley
2006-02-23 14:27:18 -06:00
odevzdal James Bottomley
rodič 1fa44ecad2
revize ffedb45225
5 změnil soubory, kde provedl 46 přidání a 77 odebrání

Zobrazit soubor

@@ -256,7 +256,9 @@ static void scsi_device_dev_release_usercontext(void *data)
static void scsi_device_dev_release(struct device *dev)
{
scsi_execute_in_process_context(scsi_device_dev_release_usercontext, dev);
struct scsi_device *sdp = to_scsi_device(dev);
execute_in_process_context(scsi_device_dev_release_usercontext, dev,
&sdp->ew);
}
static struct class sdev_class = {