Re: [PATCH scsi-misc-2.6 03/04] scsi: make scsi_requeue_request() use blk_requeue_request()

From: Tejun Heo
Date: Tue Apr 12 2005 - 11:21:39 EST


Hello, Christoph Hellwig.

On Mon, Apr 11, 2005 at 01:44:19PM +0100, Christoph Hellwig wrote:
> > + cmd->request->flags |= REQ_SOFTBARRIER;
> > +
> > + spin_lock_irqsave(q->queue_lock, flags);
> > + blk_requeue_request(q, cmd->request);
> > + spin_unlock_irqrestore(q->queue_lock, flags);
> >
> > scsi_run_queue(q);
>
> This exact code sequence is duplicated in the previous patch, maybe time
> for a
>
> void scsi_requeue_request(struct request *rq)
> {
> struct request_queue *q = rq->q;
> unsigned long flags;
>
> rq->flags |= REQ_SOFTBARRIER;
>
> spin_lock_irqsave(q->queue_lock, flags);
> blk_requeue_request(q, rq);
> spin_unlock_irqrestore(q->queue_lock, flags);
>
> scsi_run_queue(q);
> }

The duplicated code path is in scsi_queue_insert(), and the the
function is removed by later requeue path consolidation patchset. So,
I don't think separating out scsi_requeue_request() is necessary.
However, I'm thinking about setting REQ_SOFTBARRIER right after
allocating cmd in prep_fn(). So that we don't have to set
REQ_SOFTBARRIER in three different places. Also, IMHO, it better
represents the purpose of REQ_SOFTBARRIER.

Thanks a lot for your input. :-)

--
tejun

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/