Re: [patch] scsi: revert "[SCSI] Get rid of scsi_cmnd->done"

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Boaz Harrosh <bharrosh@...>
Cc: Matthew Wilcox <matthew@...>, Linus Torvalds <torvalds@...>, Peter Osterlund <petero2@...>, Ingo Molnar <mingo@...>, Linux Kernel Mailing List <linux-kernel@...>, Andrew Morton <akpm@...>, Jens Axboe <jens.axboe@...>, Al Viro <viro@...>
Date: Sunday, January 6, 2008 - 12:47 pm

On Sun, 2008-01-06 at 18:19 +0200, Boaz Harrosh wrote:

Actually, this is cmnd->done, not req->done we're removing.
cmnd->done() isn't seen by the block layer; all its uses are in the SCSI
mid-layer.


It's a good thought.  You're right, the old code calls done for every
iteration.  However, it calls it in scsi_finish_completion.  The new
code will actually call drv->done() in that same spot for every
iteration as well.

The requeue is done via scsi_requeue_request which calls
blk_requeue_request, which resets the START flag and sends the command
right back through the system (including the prep function because
scsi_requeue_request unpreps the command), so even with the new code
we'll go back through all the same done paths.

James


--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Re: [patch] scsi: revert "[SCSI] Get rid of scsi_cmnd->done", James Bottomley, (Sun Jan 6, 12:47 pm)