diff options
author | 2005-09-09 10:44:16 -0500 | |
---|---|---|
committer | 2005-09-09 10:44:16 -0500 | |
commit | e91442b635be776ea205fba233bdd5bc74b62bc3 (patch) | |
tree | c04066f8d17be121244d870ab9347ca6e8c7cda3 /lib/dec_and_lock.c | |
parent | [SCSI] fix possible deadlock in scsi_lib.c (diff) | |
download | wireguard-linux-e91442b635be776ea205fba233bdd5bc74b62bc3.tar.xz wireguard-linux-e91442b635be776ea205fba233bdd5bc74b62bc3.zip |
[SCSI] SCSI core: fix leakage of scsi_cmnd's
From: Alan Stern <stern@rowland.harvard.edu>
This patch (as559b) adds a new routine, scsi_unprep_request, which
gets called every place a request is requeued. (That includes
scsi_queue_insert as well as scsi_requeue_command.) It also changes
scsi_kill_requests to make it call __scsi_done with result equal to
DID_NO_CONNECT << 16. (I'm not sure if it's necessary to call
scsi_init_cmd_errh here; maybe you can check on that.) Finally, the
patch changes the return value from scsi_end_request, to avoid
returning a stale pointer in the case where the request was requeued.
Fortunately the return value is used in only place, and the change
actually simplified it.
Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Rejections fixed up and
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'lib/dec_and_lock.c')
0 files changed, 0 insertions, 0 deletions