Re: [PATCH scsi-misc-2.6 04/04] scsi: remove requeue feature from blk_insert_request()

From: Tejun Heo (htejun_at_gmail.com)
Date: 04/11/05

  • Next message: Tejun Heo: "Re: [PATCH scsi-misc-2.6 03/04] scsi: make scsi_requeue_request() use blk_requeue_request()"
    To: James.Bottomley@steeleye.com, axboe@suse.de, Christoph Hellwig <hch@infradead.org>
    Date:	Mon, 11 Apr 2005 12:45:58 +0900 (KST)
    
    

    04_scsi_blk_insert_request_no_requeue.patch

            blk_insert_request() has a unobivous feature of requeuing a
            request setting REQ_SPECIAL|REQ_SOFTBARRIER. SCSI midlayer
            was the only user and as previous patches removed the usage,
            remove the feature from blk_insert_request(). Only special
            requests should be queued with blk_insert_request(). All
            requeueing should go through blk_requeue_request().

    Signed-off-by: Tejun Heo <htejun@gmail.com>

     drivers/block/ll_rw_blk.c | 20 ++++++--------------
     drivers/block/paride/pd.c | 2 +-
     drivers/block/sx8.c | 4 ++--
     drivers/scsi/scsi_lib.c | 2 +-
     include/linux/blkdev.h | 2 +-
     5 files changed, 11 insertions(+), 19 deletions(-)

    Index: scsi-reqfn-export/drivers/block/ll_rw_blk.c
    ===================================================================
    --- scsi-reqfn-export.orig/drivers/block/ll_rw_blk.c 2005-04-11 12:25:15.000000000 +0900
    +++ scsi-reqfn-export/drivers/block/ll_rw_blk.c 2005-04-11 12:27:08.000000000 +0900
    @@ -2028,7 +2028,6 @@ EXPORT_SYMBOL(blk_requeue_request);
      * @rq: request to be inserted
      * @at_head: insert request at head or tail of queue
      * @data: private data
    - * @reinsert: true if request it a reinsertion of previously processed one
      *
      * Description:
      * Many block devices need to execute commands asynchronously, so they don't
    @@ -2043,8 +2042,9 @@ EXPORT_SYMBOL(blk_requeue_request);
      * host that is unable to accept a particular command.
      */
     void blk_insert_request(request_queue_t *q, struct request *rq,
    - int at_head, void *data, int reinsert)
    + int at_head, void *data)
     {
    + int where = at_head ? ELEVATOR_INSERT_FRONT : ELEVATOR_INSERT_BACK;
             unsigned long flags;
     
             /*
    @@ -2061,20 +2061,12 @@ void blk_insert_request(request_queue_t
             /*
              * If command is tagged, release the tag
              */
    - if (reinsert)
    - blk_requeue_request(q, rq);
    - else {
    - int where = ELEVATOR_INSERT_BACK;
    + if (blk_rq_tagged(rq))
    + blk_queue_end_tag(q, rq);
     
    - if (at_head)
    - where = ELEVATOR_INSERT_FRONT;
    + drive_stat_acct(rq, rq->nr_sectors, 1);
    + __elv_add_request(q, rq, where, 0);
     
    - if (blk_rq_tagged(rq))
    - blk_queue_end_tag(q, rq);
    -
    - drive_stat_acct(rq, rq->nr_sectors, 1);
    - __elv_add_request(q, rq, where, 0);
    - }
             if (blk_queue_plugged(q))
                     __generic_unplug_device(q);
             else
    Index: scsi-reqfn-export/drivers/block/paride/pd.c
    ===================================================================
    --- scsi-reqfn-export.orig/drivers/block/paride/pd.c 2005-04-11 12:25:15.000000000 +0900
    +++ scsi-reqfn-export/drivers/block/paride/pd.c 2005-04-11 12:27:08.000000000 +0900
    @@ -723,7 +723,7 @@ static int pd_special_command(struct pd_
             rq.ref_count = 1;
             rq.waiting = &wait;
             rq.end_io = blk_end_sync_rq;
    - blk_insert_request(disk->gd->queue, &rq, 0, func, 0);
    + blk_insert_request(disk->gd->queue, &rq, 0, func);
             wait_for_completion(&wait);
             rq.waiting = NULL;
             if (rq.errors)
    Index: scsi-reqfn-export/drivers/block/sx8.c
    ===================================================================
    --- scsi-reqfn-export.orig/drivers/block/sx8.c 2005-04-11 12:25:15.000000000 +0900
    +++ scsi-reqfn-export/drivers/block/sx8.c 2005-04-11 12:27:08.000000000 +0900
    @@ -614,7 +614,7 @@ static int carm_array_info (struct carm_
             spin_unlock_irq(&host->lock);
     
             DPRINTK("blk_insert_request, tag == %u\n", idx);
    - blk_insert_request(host->oob_q, crq->rq, 1, crq, 0);
    + blk_insert_request(host->oob_q, crq->rq, 1, crq);
     
             return 0;
     
    @@ -653,7 +653,7 @@ static int carm_send_special (struct car
             crq->msg_bucket = (u32) rc;
     
             DPRINTK("blk_insert_request, tag == %u\n", idx);
    - blk_insert_request(host->oob_q, crq->rq, 1, crq, 0);
    + blk_insert_request(host->oob_q, crq->rq, 1, crq);
     
             return 0;
     }
    Index: scsi-reqfn-export/drivers/scsi/scsi_lib.c
    ===================================================================
    --- scsi-reqfn-export.orig/drivers/scsi/scsi_lib.c 2005-04-11 12:27:08.000000000 +0900
    +++ scsi-reqfn-export/drivers/scsi/scsi_lib.c 2005-04-11 12:27:08.000000000 +0900
    @@ -92,7 +92,7 @@ int scsi_insert_special_req(struct scsi_
              */
             sreq->sr_request->flags &= ~REQ_DONTPREP;
             blk_insert_request(sreq->sr_device->request_queue, sreq->sr_request,
    - at_head, sreq, 0);
    + at_head, sreq);
             return 0;
     }
     
    Index: scsi-reqfn-export/include/linux/blkdev.h
    ===================================================================
    --- scsi-reqfn-export.orig/include/linux/blkdev.h 2005-04-11 12:25:15.000000000 +0900
    +++ scsi-reqfn-export/include/linux/blkdev.h 2005-04-11 12:27:08.000000000 +0900
    @@ -541,7 +541,7 @@ extern void blk_end_sync_rq(struct reque
     extern void blk_attempt_remerge(request_queue_t *, struct request *);
     extern void __blk_attempt_remerge(request_queue_t *, struct request *);
     extern struct request *blk_get_request(request_queue_t *, int, int);
    -extern void blk_insert_request(request_queue_t *, struct request *, int, void *, int);
    +extern void blk_insert_request(request_queue_t *, struct request *, int, void *);
     extern void blk_requeue_request(request_queue_t *, struct request *);
     extern void blk_plug_device(request_queue_t *);
     extern int blk_remove_plug(request_queue_t *);

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


  • Next message: Tejun Heo: "Re: [PATCH scsi-misc-2.6 03/04] scsi: make scsi_requeue_request() use blk_requeue_request()"

    Relevant Pages