Messages in this thread |  | | | Date | Sun, 06 Jan 2008 18:19:17 +0200 | | From | Boaz Harrosh <> | | Subject | Re: [patch] scsi: revert "[SCSI] Get rid of scsi_cmnd->done" |
| |
On Sun, Jan 06 2008 at 5:43 +0200, Linus Torvalds <torvalds@linux-foundation.org> wrote: > > > This all still leaves the question unanswered why that commit > 6f5391c283d7fdcf24bf40786ea79061919d1e1d changed any behaviour at all. > Because the thing that Peter is describing has nothing to do with any > low-level drivers what-so-ever. > > Linus >
James Matthew. I have a (very) wild guess at what maybe have changed with the cmnd->done patch:
Do you remember the effective loop in scsi_lib:scsi_end_request() where if bufflen was smaller then original request size, do to truncation of bufflen by ULD, then the remaining of the request is re-queued again as a new scsi-command. Well I think that the old system would call cmnd->done for every iteration, and the new system, since the done is called by the block-Q, does not see the resubmit of the new command.
I have not followed all code path of the matter, but I know that sr does alters bufflen in some cases. All this is not a bug in itself, but it is a change in behavior that might cause the current sr hack to fail.
Boaz
|  |