You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
[BLOCK] Get rid of request_queue_t typedef
Some of the code has been gradually transitioned to using the proper struct request_queue, but there's lots left. So do a full sweet of the kernel and get rid of this typedef and replace its uses with the proper type. Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
This commit is contained in:
@@ -79,9 +79,9 @@ and how to prepare flush requests. Note that the term 'ordered' is
|
|||||||
used to indicate the whole sequence of performing barrier requests
|
used to indicate the whole sequence of performing barrier requests
|
||||||
including draining and flushing.
|
including draining and flushing.
|
||||||
|
|
||||||
typedef void (prepare_flush_fn)(request_queue_t *q, struct request *rq);
|
typedef void (prepare_flush_fn)(struct request_queue *q, struct request *rq);
|
||||||
|
|
||||||
int blk_queue_ordered(request_queue_t *q, unsigned ordered,
|
int blk_queue_ordered(struct request_queue *q, unsigned ordered,
|
||||||
prepare_flush_fn *prepare_flush_fn);
|
prepare_flush_fn *prepare_flush_fn);
|
||||||
|
|
||||||
@q : the queue in question
|
@q : the queue in question
|
||||||
@@ -92,7 +92,7 @@ int blk_queue_ordered(request_queue_t *q, unsigned ordered,
|
|||||||
For example, SCSI disk driver's prepare_flush_fn looks like the
|
For example, SCSI disk driver's prepare_flush_fn looks like the
|
||||||
following.
|
following.
|
||||||
|
|
||||||
static void sd_prepare_flush(request_queue_t *q, struct request *rq)
|
static void sd_prepare_flush(struct request_queue *q, struct request *rq)
|
||||||
{
|
{
|
||||||
memset(rq->cmd, 0, sizeof(rq->cmd));
|
memset(rq->cmd, 0, sizeof(rq->cmd));
|
||||||
rq->cmd_type = REQ_TYPE_BLOCK_PC;
|
rq->cmd_type = REQ_TYPE_BLOCK_PC;
|
||||||
|
|||||||
@@ -740,12 +740,12 @@ Block now offers some simple generic functionality to help support command
|
|||||||
queueing (typically known as tagged command queueing), ie manage more than
|
queueing (typically known as tagged command queueing), ie manage more than
|
||||||
one outstanding command on a queue at any given time.
|
one outstanding command on a queue at any given time.
|
||||||
|
|
||||||
blk_queue_init_tags(request_queue_t *q, int depth)
|
blk_queue_init_tags(struct request_queue *q, int depth)
|
||||||
|
|
||||||
Initialize internal command tagging structures for a maximum
|
Initialize internal command tagging structures for a maximum
|
||||||
depth of 'depth'.
|
depth of 'depth'.
|
||||||
|
|
||||||
blk_queue_free_tags((request_queue_t *q)
|
blk_queue_free_tags((struct request_queue *q)
|
||||||
|
|
||||||
Teardown tag info associated with the queue. This will be done
|
Teardown tag info associated with the queue. This will be done
|
||||||
automatically by block if blk_queue_cleanup() is called on a queue
|
automatically by block if blk_queue_cleanup() is called on a queue
|
||||||
@@ -754,7 +754,7 @@ one outstanding command on a queue at any given time.
|
|||||||
The above are initialization and exit management, the main helpers during
|
The above are initialization and exit management, the main helpers during
|
||||||
normal operations are:
|
normal operations are:
|
||||||
|
|
||||||
blk_queue_start_tag(request_queue_t *q, struct request *rq)
|
blk_queue_start_tag(struct request_queue *q, struct request *rq)
|
||||||
|
|
||||||
Start tagged operation for this request. A free tag number between
|
Start tagged operation for this request. A free tag number between
|
||||||
0 and 'depth' is assigned to the request (rq->tag holds this number),
|
0 and 'depth' is assigned to the request (rq->tag holds this number),
|
||||||
@@ -762,7 +762,7 @@ normal operations are:
|
|||||||
for this queue is already achieved (or if the tag wasn't started for
|
for this queue is already achieved (or if the tag wasn't started for
|
||||||
some other reason), 1 is returned. Otherwise 0 is returned.
|
some other reason), 1 is returned. Otherwise 0 is returned.
|
||||||
|
|
||||||
blk_queue_end_tag(request_queue_t *q, struct request *rq)
|
blk_queue_end_tag(struct request_queue *q, struct request *rq)
|
||||||
|
|
||||||
End tagged operation on this request. 'rq' is removed from the internal
|
End tagged operation on this request. 'rq' is removed from the internal
|
||||||
book keeping structures.
|
book keeping structures.
|
||||||
@@ -781,7 +781,7 @@ queue. For instance, on IDE any tagged request error needs to clear both
|
|||||||
the hardware and software block queue and enable the driver to sanely restart
|
the hardware and software block queue and enable the driver to sanely restart
|
||||||
all the outstanding requests. There's a third helper to do that:
|
all the outstanding requests. There's a third helper to do that:
|
||||||
|
|
||||||
blk_queue_invalidate_tags(request_queue_t *q)
|
blk_queue_invalidate_tags(struct request_queue *q)
|
||||||
|
|
||||||
Clear the internal block tag queue and re-add all the pending requests
|
Clear the internal block tag queue and re-add all the pending requests
|
||||||
to the request queue. The driver will receive them again on the
|
to the request queue. The driver will receive them again on the
|
||||||
|
|||||||
@@ -83,6 +83,6 @@ struct bio *bio DBI First bio in request
|
|||||||
|
|
||||||
struct bio *biotail DBI Last bio in request
|
struct bio *biotail DBI Last bio in request
|
||||||
|
|
||||||
request_queue_t *q DB Request queue this request belongs to
|
struct request_queue *q DB Request queue this request belongs to
|
||||||
|
|
||||||
struct request_list *rl B Request list this request came from
|
struct request_list *rl B Request list this request came from
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ Field 8 -- # of milliseconds spent writing
|
|||||||
measured from __make_request() to end_that_request_last()).
|
measured from __make_request() to end_that_request_last()).
|
||||||
Field 9 -- # of I/Os currently in progress
|
Field 9 -- # of I/Os currently in progress
|
||||||
The only field that should go to zero. Incremented as requests are
|
The only field that should go to zero. Incremented as requests are
|
||||||
given to appropriate request_queue_t and decremented as they finish.
|
given to appropriate struct request_queue and decremented as they finish.
|
||||||
Field 10 -- # of milliseconds spent doing I/Os
|
Field 10 -- # of milliseconds spent doing I/Os
|
||||||
This field is increases so long as field 9 is nonzero.
|
This field is increases so long as field 9 is nonzero.
|
||||||
Field 11 -- weighted # of milliseconds spent doing I/Os
|
Field 11 -- weighted # of milliseconds spent doing I/Os
|
||||||
|
|||||||
@@ -161,11 +161,11 @@ static void mbox_rx_work(struct work_struct *work)
|
|||||||
/*
|
/*
|
||||||
* Mailbox interrupt handler
|
* Mailbox interrupt handler
|
||||||
*/
|
*/
|
||||||
static void mbox_txq_fn(request_queue_t * q)
|
static void mbox_txq_fn(struct request_queue * q)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
static void mbox_rxq_fn(request_queue_t * q)
|
static void mbox_rxq_fn(struct request_queue * q)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -180,7 +180,7 @@ static void __mbox_rx_interrupt(struct omap_mbox *mbox)
|
|||||||
{
|
{
|
||||||
struct request *rq;
|
struct request *rq;
|
||||||
mbox_msg_t msg;
|
mbox_msg_t msg;
|
||||||
request_queue_t *q = mbox->rxq->queue;
|
struct request_queue *q = mbox->rxq->queue;
|
||||||
|
|
||||||
disable_mbox_irq(mbox, IRQ_RX);
|
disable_mbox_irq(mbox, IRQ_RX);
|
||||||
|
|
||||||
@@ -297,7 +297,7 @@ static struct omap_mbox_queue *mbox_queue_alloc(struct omap_mbox *mbox,
|
|||||||
request_fn_proc * proc,
|
request_fn_proc * proc,
|
||||||
void (*work) (struct work_struct *))
|
void (*work) (struct work_struct *))
|
||||||
{
|
{
|
||||||
request_queue_t *q;
|
struct request_queue *q;
|
||||||
struct omap_mbox_queue *mq;
|
struct omap_mbox_queue *mq;
|
||||||
|
|
||||||
mq = kzalloc(sizeof(struct omap_mbox_queue), GFP_KERNEL);
|
mq = kzalloc(sizeof(struct omap_mbox_queue), GFP_KERNEL);
|
||||||
|
|||||||
@@ -469,7 +469,7 @@ __uml_help(fakehd,
|
|||||||
" Change the ubd device name to \"hd\".\n\n"
|
" Change the ubd device name to \"hd\".\n\n"
|
||||||
);
|
);
|
||||||
|
|
||||||
static void do_ubd_request(request_queue_t * q);
|
static void do_ubd_request(struct request_queue * q);
|
||||||
|
|
||||||
/* Only changed by ubd_init, which is an initcall. */
|
/* Only changed by ubd_init, which is an initcall. */
|
||||||
int thread_fd = -1;
|
int thread_fd = -1;
|
||||||
@@ -1081,7 +1081,7 @@ static void prepare_request(struct request *req, struct io_thread_req *io_req,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Called with dev->lock held */
|
/* Called with dev->lock held */
|
||||||
static void do_ubd_request(request_queue_t *q)
|
static void do_ubd_request(struct request_queue *q)
|
||||||
{
|
{
|
||||||
struct io_thread_req *io_req;
|
struct io_thread_req *io_req;
|
||||||
struct request *req;
|
struct request *req;
|
||||||
|
|||||||
+14
-12
@@ -796,7 +796,7 @@ static void update_write_batch(struct as_data *ad)
|
|||||||
* as_completed_request is to be called when a request has completed and
|
* as_completed_request is to be called when a request has completed and
|
||||||
* returned something to the requesting process, be it an error or data.
|
* returned something to the requesting process, be it an error or data.
|
||||||
*/
|
*/
|
||||||
static void as_completed_request(request_queue_t *q, struct request *rq)
|
static void as_completed_request(struct request_queue *q, struct request *rq)
|
||||||
{
|
{
|
||||||
struct as_data *ad = q->elevator->elevator_data;
|
struct as_data *ad = q->elevator->elevator_data;
|
||||||
|
|
||||||
@@ -853,7 +853,8 @@ out:
|
|||||||
* reference unless it replaces the request at somepart of the elevator
|
* reference unless it replaces the request at somepart of the elevator
|
||||||
* (ie. the dispatch queue)
|
* (ie. the dispatch queue)
|
||||||
*/
|
*/
|
||||||
static void as_remove_queued_request(request_queue_t *q, struct request *rq)
|
static void as_remove_queued_request(struct request_queue *q,
|
||||||
|
struct request *rq)
|
||||||
{
|
{
|
||||||
const int data_dir = rq_is_sync(rq);
|
const int data_dir = rq_is_sync(rq);
|
||||||
struct as_data *ad = q->elevator->elevator_data;
|
struct as_data *ad = q->elevator->elevator_data;
|
||||||
@@ -978,7 +979,7 @@ static void as_move_to_dispatch(struct as_data *ad, struct request *rq)
|
|||||||
* read/write expire, batch expire, etc, and moves it to the dispatch
|
* read/write expire, batch expire, etc, and moves it to the dispatch
|
||||||
* queue. Returns 1 if a request was found, 0 otherwise.
|
* queue. Returns 1 if a request was found, 0 otherwise.
|
||||||
*/
|
*/
|
||||||
static int as_dispatch_request(request_queue_t *q, int force)
|
static int as_dispatch_request(struct request_queue *q, int force)
|
||||||
{
|
{
|
||||||
struct as_data *ad = q->elevator->elevator_data;
|
struct as_data *ad = q->elevator->elevator_data;
|
||||||
const int reads = !list_empty(&ad->fifo_list[REQ_SYNC]);
|
const int reads = !list_empty(&ad->fifo_list[REQ_SYNC]);
|
||||||
@@ -1139,7 +1140,7 @@ fifo_expired:
|
|||||||
/*
|
/*
|
||||||
* add rq to rbtree and fifo
|
* add rq to rbtree and fifo
|
||||||
*/
|
*/
|
||||||
static void as_add_request(request_queue_t *q, struct request *rq)
|
static void as_add_request(struct request_queue *q, struct request *rq)
|
||||||
{
|
{
|
||||||
struct as_data *ad = q->elevator->elevator_data;
|
struct as_data *ad = q->elevator->elevator_data;
|
||||||
int data_dir;
|
int data_dir;
|
||||||
@@ -1167,7 +1168,7 @@ static void as_add_request(request_queue_t *q, struct request *rq)
|
|||||||
RQ_SET_STATE(rq, AS_RQ_QUEUED);
|
RQ_SET_STATE(rq, AS_RQ_QUEUED);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void as_activate_request(request_queue_t *q, struct request *rq)
|
static void as_activate_request(struct request_queue *q, struct request *rq)
|
||||||
{
|
{
|
||||||
WARN_ON(RQ_STATE(rq) != AS_RQ_DISPATCHED);
|
WARN_ON(RQ_STATE(rq) != AS_RQ_DISPATCHED);
|
||||||
RQ_SET_STATE(rq, AS_RQ_REMOVED);
|
RQ_SET_STATE(rq, AS_RQ_REMOVED);
|
||||||
@@ -1175,7 +1176,7 @@ static void as_activate_request(request_queue_t *q, struct request *rq)
|
|||||||
atomic_dec(&RQ_IOC(rq)->aic->nr_dispatched);
|
atomic_dec(&RQ_IOC(rq)->aic->nr_dispatched);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void as_deactivate_request(request_queue_t *q, struct request *rq)
|
static void as_deactivate_request(struct request_queue *q, struct request *rq)
|
||||||
{
|
{
|
||||||
WARN_ON(RQ_STATE(rq) != AS_RQ_REMOVED);
|
WARN_ON(RQ_STATE(rq) != AS_RQ_REMOVED);
|
||||||
RQ_SET_STATE(rq, AS_RQ_DISPATCHED);
|
RQ_SET_STATE(rq, AS_RQ_DISPATCHED);
|
||||||
@@ -1189,7 +1190,7 @@ static void as_deactivate_request(request_queue_t *q, struct request *rq)
|
|||||||
* is not empty - it is used in the block layer to check for plugging and
|
* is not empty - it is used in the block layer to check for plugging and
|
||||||
* merging opportunities
|
* merging opportunities
|
||||||
*/
|
*/
|
||||||
static int as_queue_empty(request_queue_t *q)
|
static int as_queue_empty(struct request_queue *q)
|
||||||
{
|
{
|
||||||
struct as_data *ad = q->elevator->elevator_data;
|
struct as_data *ad = q->elevator->elevator_data;
|
||||||
|
|
||||||
@@ -1198,7 +1199,7 @@ static int as_queue_empty(request_queue_t *q)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
as_merge(request_queue_t *q, struct request **req, struct bio *bio)
|
as_merge(struct request_queue *q, struct request **req, struct bio *bio)
|
||||||
{
|
{
|
||||||
struct as_data *ad = q->elevator->elevator_data;
|
struct as_data *ad = q->elevator->elevator_data;
|
||||||
sector_t rb_key = bio->bi_sector + bio_sectors(bio);
|
sector_t rb_key = bio->bi_sector + bio_sectors(bio);
|
||||||
@@ -1216,7 +1217,8 @@ as_merge(request_queue_t *q, struct request **req, struct bio *bio)
|
|||||||
return ELEVATOR_NO_MERGE;
|
return ELEVATOR_NO_MERGE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void as_merged_request(request_queue_t *q, struct request *req, int type)
|
static void as_merged_request(struct request_queue *q, struct request *req,
|
||||||
|
int type)
|
||||||
{
|
{
|
||||||
struct as_data *ad = q->elevator->elevator_data;
|
struct as_data *ad = q->elevator->elevator_data;
|
||||||
|
|
||||||
@@ -1234,7 +1236,7 @@ static void as_merged_request(request_queue_t *q, struct request *req, int type)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void as_merged_requests(request_queue_t *q, struct request *req,
|
static void as_merged_requests(struct request_queue *q, struct request *req,
|
||||||
struct request *next)
|
struct request *next)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
@@ -1285,7 +1287,7 @@ static void as_work_handler(struct work_struct *work)
|
|||||||
spin_unlock_irqrestore(q->queue_lock, flags);
|
spin_unlock_irqrestore(q->queue_lock, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int as_may_queue(request_queue_t *q, int rw)
|
static int as_may_queue(struct request_queue *q, int rw)
|
||||||
{
|
{
|
||||||
int ret = ELV_MQUEUE_MAY;
|
int ret = ELV_MQUEUE_MAY;
|
||||||
struct as_data *ad = q->elevator->elevator_data;
|
struct as_data *ad = q->elevator->elevator_data;
|
||||||
@@ -1318,7 +1320,7 @@ static void as_exit_queue(elevator_t *e)
|
|||||||
/*
|
/*
|
||||||
* initialize elevator private data (as_data).
|
* initialize elevator private data (as_data).
|
||||||
*/
|
*/
|
||||||
static void *as_init_queue(request_queue_t *q)
|
static void *as_init_queue(struct request_queue *q)
|
||||||
{
|
{
|
||||||
struct as_data *ad;
|
struct as_data *ad;
|
||||||
|
|
||||||
|
|||||||
+5
-5
@@ -231,7 +231,7 @@ static void blk_trace_cleanup(struct blk_trace *bt)
|
|||||||
kfree(bt);
|
kfree(bt);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int blk_trace_remove(request_queue_t *q)
|
static int blk_trace_remove(struct request_queue *q)
|
||||||
{
|
{
|
||||||
struct blk_trace *bt;
|
struct blk_trace *bt;
|
||||||
|
|
||||||
@@ -312,7 +312,7 @@ static struct rchan_callbacks blk_relay_callbacks = {
|
|||||||
/*
|
/*
|
||||||
* Setup everything required to start tracing
|
* Setup everything required to start tracing
|
||||||
*/
|
*/
|
||||||
static int blk_trace_setup(request_queue_t *q, struct block_device *bdev,
|
static int blk_trace_setup(struct request_queue *q, struct block_device *bdev,
|
||||||
char __user *arg)
|
char __user *arg)
|
||||||
{
|
{
|
||||||
struct blk_user_trace_setup buts;
|
struct blk_user_trace_setup buts;
|
||||||
@@ -401,7 +401,7 @@ err:
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int blk_trace_startstop(request_queue_t *q, int start)
|
static int blk_trace_startstop(struct request_queue *q, int start)
|
||||||
{
|
{
|
||||||
struct blk_trace *bt;
|
struct blk_trace *bt;
|
||||||
int ret;
|
int ret;
|
||||||
@@ -444,7 +444,7 @@ static int blk_trace_startstop(request_queue_t *q, int start)
|
|||||||
**/
|
**/
|
||||||
int blk_trace_ioctl(struct block_device *bdev, unsigned cmd, char __user *arg)
|
int blk_trace_ioctl(struct block_device *bdev, unsigned cmd, char __user *arg)
|
||||||
{
|
{
|
||||||
request_queue_t *q;
|
struct request_queue *q;
|
||||||
int ret, start = 0;
|
int ret, start = 0;
|
||||||
|
|
||||||
q = bdev_get_queue(bdev);
|
q = bdev_get_queue(bdev);
|
||||||
@@ -479,7 +479,7 @@ int blk_trace_ioctl(struct block_device *bdev, unsigned cmd, char __user *arg)
|
|||||||
* @q: the request queue associated with the device
|
* @q: the request queue associated with the device
|
||||||
*
|
*
|
||||||
**/
|
**/
|
||||||
void blk_trace_shutdown(request_queue_t *q)
|
void blk_trace_shutdown(struct request_queue *q)
|
||||||
{
|
{
|
||||||
if (q->blk_trace) {
|
if (q->blk_trace) {
|
||||||
blk_trace_startstop(q, 0);
|
blk_trace_startstop(q, 0);
|
||||||
|
|||||||
+6
-6
@@ -37,7 +37,7 @@
|
|||||||
#define BSG_VERSION "0.4"
|
#define BSG_VERSION "0.4"
|
||||||
|
|
||||||
struct bsg_device {
|
struct bsg_device {
|
||||||
request_queue_t *queue;
|
struct request_queue *queue;
|
||||||
spinlock_t lock;
|
spinlock_t lock;
|
||||||
struct list_head busy_list;
|
struct list_head busy_list;
|
||||||
struct list_head done_list;
|
struct list_head done_list;
|
||||||
@@ -180,7 +180,7 @@ unlock:
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int blk_fill_sgv4_hdr_rq(request_queue_t *q, struct request *rq,
|
static int blk_fill_sgv4_hdr_rq(struct request_queue *q, struct request *rq,
|
||||||
struct sg_io_v4 *hdr, int has_write_perm)
|
struct sg_io_v4 *hdr, int has_write_perm)
|
||||||
{
|
{
|
||||||
memset(rq->cmd, 0, BLK_MAX_CDB); /* ATAPI hates garbage after CDB */
|
memset(rq->cmd, 0, BLK_MAX_CDB); /* ATAPI hates garbage after CDB */
|
||||||
@@ -214,7 +214,7 @@ static int blk_fill_sgv4_hdr_rq(request_queue_t *q, struct request *rq,
|
|||||||
* Check if sg_io_v4 from user is allowed and valid
|
* Check if sg_io_v4 from user is allowed and valid
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
bsg_validate_sgv4_hdr(request_queue_t *q, struct sg_io_v4 *hdr, int *rw)
|
bsg_validate_sgv4_hdr(struct request_queue *q, struct sg_io_v4 *hdr, int *rw)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
@@ -250,7 +250,7 @@ bsg_validate_sgv4_hdr(request_queue_t *q, struct sg_io_v4 *hdr, int *rw)
|
|||||||
static struct request *
|
static struct request *
|
||||||
bsg_map_hdr(struct bsg_device *bd, struct sg_io_v4 *hdr)
|
bsg_map_hdr(struct bsg_device *bd, struct sg_io_v4 *hdr)
|
||||||
{
|
{
|
||||||
request_queue_t *q = bd->queue;
|
struct request_queue *q = bd->queue;
|
||||||
struct request *rq, *next_rq = NULL;
|
struct request *rq, *next_rq = NULL;
|
||||||
int ret, rw;
|
int ret, rw;
|
||||||
unsigned int dxfer_len;
|
unsigned int dxfer_len;
|
||||||
@@ -345,7 +345,7 @@ static void bsg_rq_end_io(struct request *rq, int uptodate)
|
|||||||
* do final setup of a 'bc' and submit the matching 'rq' to the block
|
* do final setup of a 'bc' and submit the matching 'rq' to the block
|
||||||
* layer for io
|
* layer for io
|
||||||
*/
|
*/
|
||||||
static void bsg_add_command(struct bsg_device *bd, request_queue_t *q,
|
static void bsg_add_command(struct bsg_device *bd, struct request_queue *q,
|
||||||
struct bsg_command *bc, struct request *rq)
|
struct bsg_command *bc, struct request *rq)
|
||||||
{
|
{
|
||||||
rq->sense = bc->sense;
|
rq->sense = bc->sense;
|
||||||
@@ -611,7 +611,7 @@ static int __bsg_write(struct bsg_device *bd, const char __user *buf,
|
|||||||
bc = NULL;
|
bc = NULL;
|
||||||
ret = 0;
|
ret = 0;
|
||||||
while (nr_commands) {
|
while (nr_commands) {
|
||||||
request_queue_t *q = bd->queue;
|
struct request_queue *q = bd->queue;
|
||||||
|
|
||||||
bc = bsg_alloc_command(bd);
|
bc = bsg_alloc_command(bd);
|
||||||
if (IS_ERR(bc)) {
|
if (IS_ERR(bc)) {
|
||||||
|
|||||||
+20
-19
@@ -71,7 +71,7 @@ struct cfq_rb_root {
|
|||||||
* Per block device queue structure
|
* Per block device queue structure
|
||||||
*/
|
*/
|
||||||
struct cfq_data {
|
struct cfq_data {
|
||||||
request_queue_t *queue;
|
struct request_queue *queue;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* rr list of queues with requests and the count of them
|
* rr list of queues with requests and the count of them
|
||||||
@@ -197,7 +197,7 @@ CFQ_CFQQ_FNS(slice_new);
|
|||||||
CFQ_CFQQ_FNS(sync);
|
CFQ_CFQQ_FNS(sync);
|
||||||
#undef CFQ_CFQQ_FNS
|
#undef CFQ_CFQQ_FNS
|
||||||
|
|
||||||
static void cfq_dispatch_insert(request_queue_t *, struct request *);
|
static void cfq_dispatch_insert(struct request_queue *, struct request *);
|
||||||
static struct cfq_queue *cfq_get_queue(struct cfq_data *, int,
|
static struct cfq_queue *cfq_get_queue(struct cfq_data *, int,
|
||||||
struct task_struct *, gfp_t);
|
struct task_struct *, gfp_t);
|
||||||
static struct cfq_io_context *cfq_cic_rb_lookup(struct cfq_data *,
|
static struct cfq_io_context *cfq_cic_rb_lookup(struct cfq_data *,
|
||||||
@@ -237,7 +237,7 @@ static inline void cfq_schedule_dispatch(struct cfq_data *cfqd)
|
|||||||
kblockd_schedule_work(&cfqd->unplug_work);
|
kblockd_schedule_work(&cfqd->unplug_work);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int cfq_queue_empty(request_queue_t *q)
|
static int cfq_queue_empty(struct request_queue *q)
|
||||||
{
|
{
|
||||||
struct cfq_data *cfqd = q->elevator->elevator_data;
|
struct cfq_data *cfqd = q->elevator->elevator_data;
|
||||||
|
|
||||||
@@ -623,7 +623,7 @@ cfq_find_rq_fmerge(struct cfq_data *cfqd, struct bio *bio)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void cfq_activate_request(request_queue_t *q, struct request *rq)
|
static void cfq_activate_request(struct request_queue *q, struct request *rq)
|
||||||
{
|
{
|
||||||
struct cfq_data *cfqd = q->elevator->elevator_data;
|
struct cfq_data *cfqd = q->elevator->elevator_data;
|
||||||
|
|
||||||
@@ -641,7 +641,7 @@ static void cfq_activate_request(request_queue_t *q, struct request *rq)
|
|||||||
cfqd->last_position = rq->hard_sector + rq->hard_nr_sectors;
|
cfqd->last_position = rq->hard_sector + rq->hard_nr_sectors;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void cfq_deactivate_request(request_queue_t *q, struct request *rq)
|
static void cfq_deactivate_request(struct request_queue *q, struct request *rq)
|
||||||
{
|
{
|
||||||
struct cfq_data *cfqd = q->elevator->elevator_data;
|
struct cfq_data *cfqd = q->elevator->elevator_data;
|
||||||
|
|
||||||
@@ -665,7 +665,8 @@ static void cfq_remove_request(struct request *rq)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int cfq_merge(request_queue_t *q, struct request **req, struct bio *bio)
|
static int cfq_merge(struct request_queue *q, struct request **req,
|
||||||
|
struct bio *bio)
|
||||||
{
|
{
|
||||||
struct cfq_data *cfqd = q->elevator->elevator_data;
|
struct cfq_data *cfqd = q->elevator->elevator_data;
|
||||||
struct request *__rq;
|
struct request *__rq;
|
||||||
@@ -679,7 +680,7 @@ static int cfq_merge(request_queue_t *q, struct request **req, struct bio *bio)
|
|||||||
return ELEVATOR_NO_MERGE;
|
return ELEVATOR_NO_MERGE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void cfq_merged_request(request_queue_t *q, struct request *req,
|
static void cfq_merged_request(struct request_queue *q, struct request *req,
|
||||||
int type)
|
int type)
|
||||||
{
|
{
|
||||||
if (type == ELEVATOR_FRONT_MERGE) {
|
if (type == ELEVATOR_FRONT_MERGE) {
|
||||||
@@ -690,7 +691,7 @@ static void cfq_merged_request(request_queue_t *q, struct request *req,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
cfq_merged_requests(request_queue_t *q, struct request *rq,
|
cfq_merged_requests(struct request_queue *q, struct request *rq,
|
||||||
struct request *next)
|
struct request *next)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
@@ -703,7 +704,7 @@ cfq_merged_requests(request_queue_t *q, struct request *rq,
|
|||||||
cfq_remove_request(next);
|
cfq_remove_request(next);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int cfq_allow_merge(request_queue_t *q, struct request *rq,
|
static int cfq_allow_merge(struct request_queue *q, struct request *rq,
|
||||||
struct bio *bio)
|
struct bio *bio)
|
||||||
{
|
{
|
||||||
struct cfq_data *cfqd = q->elevator->elevator_data;
|
struct cfq_data *cfqd = q->elevator->elevator_data;
|
||||||
@@ -913,7 +914,7 @@ static void cfq_arm_slice_timer(struct cfq_data *cfqd)
|
|||||||
/*
|
/*
|
||||||
* Move request from internal lists to the request queue dispatch list.
|
* Move request from internal lists to the request queue dispatch list.
|
||||||
*/
|
*/
|
||||||
static void cfq_dispatch_insert(request_queue_t *q, struct request *rq)
|
static void cfq_dispatch_insert(struct request_queue *q, struct request *rq)
|
||||||
{
|
{
|
||||||
struct cfq_data *cfqd = q->elevator->elevator_data;
|
struct cfq_data *cfqd = q->elevator->elevator_data;
|
||||||
struct cfq_queue *cfqq = RQ_CFQQ(rq);
|
struct cfq_queue *cfqq = RQ_CFQQ(rq);
|
||||||
@@ -1093,7 +1094,7 @@ static int cfq_forced_dispatch(struct cfq_data *cfqd)
|
|||||||
return dispatched;
|
return dispatched;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int cfq_dispatch_requests(request_queue_t *q, int force)
|
static int cfq_dispatch_requests(struct request_queue *q, int force)
|
||||||
{
|
{
|
||||||
struct cfq_data *cfqd = q->elevator->elevator_data;
|
struct cfq_data *cfqd = q->elevator->elevator_data;
|
||||||
struct cfq_queue *cfqq;
|
struct cfq_queue *cfqq;
|
||||||
@@ -1214,7 +1215,7 @@ static void cfq_exit_single_io_context(struct cfq_io_context *cic)
|
|||||||
struct cfq_data *cfqd = cic->key;
|
struct cfq_data *cfqd = cic->key;
|
||||||
|
|
||||||
if (cfqd) {
|
if (cfqd) {
|
||||||
request_queue_t *q = cfqd->queue;
|
struct request_queue *q = cfqd->queue;
|
||||||
|
|
||||||
spin_lock_irq(q->queue_lock);
|
spin_lock_irq(q->queue_lock);
|
||||||
__cfq_exit_single_io_context(cfqd, cic);
|
__cfq_exit_single_io_context(cfqd, cic);
|
||||||
@@ -1775,7 +1776,7 @@ cfq_rq_enqueued(struct cfq_data *cfqd, struct cfq_queue *cfqq,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void cfq_insert_request(request_queue_t *q, struct request *rq)
|
static void cfq_insert_request(struct request_queue *q, struct request *rq)
|
||||||
{
|
{
|
||||||
struct cfq_data *cfqd = q->elevator->elevator_data;
|
struct cfq_data *cfqd = q->elevator->elevator_data;
|
||||||
struct cfq_queue *cfqq = RQ_CFQQ(rq);
|
struct cfq_queue *cfqq = RQ_CFQQ(rq);
|
||||||
@@ -1789,7 +1790,7 @@ static void cfq_insert_request(request_queue_t *q, struct request *rq)
|
|||||||
cfq_rq_enqueued(cfqd, cfqq, rq);
|
cfq_rq_enqueued(cfqd, cfqq, rq);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void cfq_completed_request(request_queue_t *q, struct request *rq)
|
static void cfq_completed_request(struct request_queue *q, struct request *rq)
|
||||||
{
|
{
|
||||||
struct cfq_queue *cfqq = RQ_CFQQ(rq);
|
struct cfq_queue *cfqq = RQ_CFQQ(rq);
|
||||||
struct cfq_data *cfqd = cfqq->cfqd;
|
struct cfq_data *cfqd = cfqq->cfqd;
|
||||||
@@ -1868,7 +1869,7 @@ static inline int __cfq_may_queue(struct cfq_queue *cfqq)
|
|||||||
return ELV_MQUEUE_MAY;
|
return ELV_MQUEUE_MAY;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int cfq_may_queue(request_queue_t *q, int rw)
|
static int cfq_may_queue(struct request_queue *q, int rw)
|
||||||
{
|
{
|
||||||
struct cfq_data *cfqd = q->elevator->elevator_data;
|
struct cfq_data *cfqd = q->elevator->elevator_data;
|
||||||
struct task_struct *tsk = current;
|
struct task_struct *tsk = current;
|
||||||
@@ -1922,7 +1923,7 @@ static void cfq_put_request(struct request *rq)
|
|||||||
* Allocate cfq data structures associated with this request.
|
* Allocate cfq data structures associated with this request.
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
cfq_set_request(request_queue_t *q, struct request *rq, gfp_t gfp_mask)
|
cfq_set_request(struct request_queue *q, struct request *rq, gfp_t gfp_mask)
|
||||||
{
|
{
|
||||||
struct cfq_data *cfqd = q->elevator->elevator_data;
|
struct cfq_data *cfqd = q->elevator->elevator_data;
|
||||||
struct task_struct *tsk = current;
|
struct task_struct *tsk = current;
|
||||||
@@ -1974,7 +1975,7 @@ static void cfq_kick_queue(struct work_struct *work)
|
|||||||
{
|
{
|
||||||
struct cfq_data *cfqd =
|
struct cfq_data *cfqd =
|
||||||
container_of(work, struct cfq_data, unplug_work);
|
container_of(work, struct cfq_data, unplug_work);
|
||||||
request_queue_t *q = cfqd->queue;
|
struct request_queue *q = cfqd->queue;
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
|
||||||
spin_lock_irqsave(q->queue_lock, flags);
|
spin_lock_irqsave(q->queue_lock, flags);
|
||||||
@@ -2072,7 +2073,7 @@ static void cfq_put_async_queues(struct cfq_data *cfqd)
|
|||||||
static void cfq_exit_queue(elevator_t *e)
|
static void cfq_exit_queue(elevator_t *e)
|
||||||
{
|
{
|
||||||
struct cfq_data *cfqd = e->elevator_data;
|
struct cfq_data *cfqd = e->elevator_data;
|
||||||
request_queue_t *q = cfqd->queue;
|
struct request_queue *q = cfqd->queue;
|
||||||
|
|
||||||
cfq_shutdown_timer_wq(cfqd);
|
cfq_shutdown_timer_wq(cfqd);
|
||||||
|
|
||||||
@@ -2098,7 +2099,7 @@ static void cfq_exit_queue(elevator_t *e)
|
|||||||
kfree(cfqd);
|
kfree(cfqd);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void *cfq_init_queue(request_queue_t *q)
|
static void *cfq_init_queue(struct request_queue *q)
|
||||||
{
|
{
|
||||||
struct cfq_data *cfqd;
|
struct cfq_data *cfqd;
|
||||||
|
|
||||||
|
|||||||
@@ -106,7 +106,7 @@ deadline_add_request(struct request_queue *q, struct request *rq)
|
|||||||
/*
|
/*
|
||||||
* remove rq from rbtree and fifo.
|
* remove rq from rbtree and fifo.
|
||||||
*/
|
*/
|
||||||
static void deadline_remove_request(request_queue_t *q, struct request *rq)
|
static void deadline_remove_request(struct request_queue *q, struct request *rq)
|
||||||
{
|
{
|
||||||
struct deadline_data *dd = q->elevator->elevator_data;
|
struct deadline_data *dd = q->elevator->elevator_data;
|
||||||
|
|
||||||
@@ -115,7 +115,7 @@ static void deadline_remove_request(request_queue_t *q, struct request *rq)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
deadline_merge(request_queue_t *q, struct request **req, struct bio *bio)
|
deadline_merge(struct request_queue *q, struct request **req, struct bio *bio)
|
||||||
{
|
{
|
||||||
struct deadline_data *dd = q->elevator->elevator_data;
|
struct deadline_data *dd = q->elevator->elevator_data;
|
||||||
struct request *__rq;
|
struct request *__rq;
|
||||||
@@ -144,8 +144,8 @@ out:
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void deadline_merged_request(request_queue_t *q, struct request *req,
|
static void deadline_merged_request(struct request_queue *q,
|
||||||
int type)
|
struct request *req, int type)
|
||||||
{
|
{
|
||||||
struct deadline_data *dd = q->elevator->elevator_data;
|
struct deadline_data *dd = q->elevator->elevator_data;
|
||||||
|
|
||||||
@@ -159,7 +159,7 @@ static void deadline_merged_request(request_queue_t *q, struct request *req,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
deadline_merged_requests(request_queue_t *q, struct request *req,
|
deadline_merged_requests(struct request_queue *q, struct request *req,
|
||||||
struct request *next)
|
struct request *next)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
@@ -185,7 +185,7 @@ deadline_merged_requests(request_queue_t *q, struct request *req,
|
|||||||
static inline void
|
static inline void
|
||||||
deadline_move_to_dispatch(struct deadline_data *dd, struct request *rq)
|
deadline_move_to_dispatch(struct deadline_data *dd, struct request *rq)
|
||||||
{
|
{
|
||||||
request_queue_t *q = rq->q;
|
struct request_queue *q = rq->q;
|
||||||
|
|
||||||
deadline_remove_request(q, rq);
|
deadline_remove_request(q, rq);
|
||||||
elv_dispatch_add_tail(q, rq);
|
elv_dispatch_add_tail(q, rq);
|
||||||
@@ -236,7 +236,7 @@ static inline int deadline_check_fifo(struct deadline_data *dd, int ddir)
|
|||||||
* deadline_dispatch_requests selects the best request according to
|
* deadline_dispatch_requests selects the best request according to
|
||||||
* read/write expire, fifo_batch, etc
|
* read/write expire, fifo_batch, etc
|
||||||
*/
|
*/
|
||||||
static int deadline_dispatch_requests(request_queue_t *q, int force)
|
static int deadline_dispatch_requests(struct request_queue *q, int force)
|
||||||
{
|
{
|
||||||
struct deadline_data *dd = q->elevator->elevator_data;
|
struct deadline_data *dd = q->elevator->elevator_data;
|
||||||
const int reads = !list_empty(&dd->fifo_list[READ]);
|
const int reads = !list_empty(&dd->fifo_list[READ]);
|
||||||
@@ -335,7 +335,7 @@ dispatch_request:
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int deadline_queue_empty(request_queue_t *q)
|
static int deadline_queue_empty(struct request_queue *q)
|
||||||
{
|
{
|
||||||
struct deadline_data *dd = q->elevator->elevator_data;
|
struct deadline_data *dd = q->elevator->elevator_data;
|
||||||
|
|
||||||
@@ -356,7 +356,7 @@ static void deadline_exit_queue(elevator_t *e)
|
|||||||
/*
|
/*
|
||||||
* initialize elevator private data (deadline_data).
|
* initialize elevator private data (deadline_data).
|
||||||
*/
|
*/
|
||||||
static void *deadline_init_queue(request_queue_t *q)
|
static void *deadline_init_queue(struct request_queue *q)
|
||||||
{
|
{
|
||||||
struct deadline_data *dd;
|
struct deadline_data *dd;
|
||||||
|
|
||||||
|
|||||||
+40
-35
@@ -56,7 +56,7 @@ static const int elv_hash_shift = 6;
|
|||||||
*/
|
*/
|
||||||
static int elv_iosched_allow_merge(struct request *rq, struct bio *bio)
|
static int elv_iosched_allow_merge(struct request *rq, struct bio *bio)
|
||||||
{
|
{
|
||||||
request_queue_t *q = rq->q;
|
struct request_queue *q = rq->q;
|
||||||
elevator_t *e = q->elevator;
|
elevator_t *e = q->elevator;
|
||||||
|
|
||||||
if (e->ops->elevator_allow_merge_fn)
|
if (e->ops->elevator_allow_merge_fn)
|
||||||
@@ -141,12 +141,13 @@ static struct elevator_type *elevator_get(const char *name)
|
|||||||
return e;
|
return e;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void *elevator_init_queue(request_queue_t *q, struct elevator_queue *eq)
|
static void *elevator_init_queue(struct request_queue *q,
|
||||||
|
struct elevator_queue *eq)
|
||||||
{
|
{
|
||||||
return eq->ops->elevator_init_fn(q);
|
return eq->ops->elevator_init_fn(q);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void elevator_attach(request_queue_t *q, struct elevator_queue *eq,
|
static void elevator_attach(struct request_queue *q, struct elevator_queue *eq,
|
||||||
void *data)
|
void *data)
|
||||||
{
|
{
|
||||||
q->elevator = eq;
|
q->elevator = eq;
|
||||||
@@ -172,7 +173,8 @@ __setup("elevator=", elevator_setup);
|
|||||||
|
|
||||||
static struct kobj_type elv_ktype;
|
static struct kobj_type elv_ktype;
|
||||||
|
|
||||||
static elevator_t *elevator_alloc(request_queue_t *q, struct elevator_type *e)
|
static elevator_t *elevator_alloc(struct request_queue *q,
|
||||||
|
struct elevator_type *e)
|
||||||
{
|
{
|
||||||
elevator_t *eq;
|
elevator_t *eq;
|
||||||
int i;
|
int i;
|
||||||
@@ -212,7 +214,7 @@ static void elevator_release(struct kobject *kobj)
|
|||||||
kfree(e);
|
kfree(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
int elevator_init(request_queue_t *q, char *name)
|
int elevator_init(struct request_queue *q, char *name)
|
||||||
{
|
{
|
||||||
struct elevator_type *e = NULL;
|
struct elevator_type *e = NULL;
|
||||||
struct elevator_queue *eq;
|
struct elevator_queue *eq;
|
||||||
@@ -264,7 +266,7 @@ void elevator_exit(elevator_t *e)
|
|||||||
|
|
||||||
EXPORT_SYMBOL(elevator_exit);
|
EXPORT_SYMBOL(elevator_exit);
|
||||||
|
|
||||||
static void elv_activate_rq(request_queue_t *q, struct request *rq)
|
static void elv_activate_rq(struct request_queue *q, struct request *rq)
|
||||||
{
|
{
|
||||||
elevator_t *e = q->elevator;
|
elevator_t *e = q->elevator;
|
||||||
|
|
||||||
@@ -272,7 +274,7 @@ static void elv_activate_rq(request_queue_t *q, struct request *rq)
|
|||||||
e->ops->elevator_activate_req_fn(q, rq);
|
e->ops->elevator_activate_req_fn(q, rq);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void elv_deactivate_rq(request_queue_t *q, struct request *rq)
|
static void elv_deactivate_rq(struct request_queue *q, struct request *rq)
|
||||||
{
|
{
|
||||||
elevator_t *e = q->elevator;
|
elevator_t *e = q->elevator;
|
||||||
|
|
||||||
@@ -285,13 +287,13 @@ static inline void __elv_rqhash_del(struct request *rq)
|
|||||||
hlist_del_init(&rq->hash);
|
hlist_del_init(&rq->hash);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void elv_rqhash_del(request_queue_t *q, struct request *rq)
|
static void elv_rqhash_del(struct request_queue *q, struct request *rq)
|
||||||
{
|
{
|
||||||
if (ELV_ON_HASH(rq))
|
if (ELV_ON_HASH(rq))
|
||||||
__elv_rqhash_del(rq);
|
__elv_rqhash_del(rq);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void elv_rqhash_add(request_queue_t *q, struct request *rq)
|
static void elv_rqhash_add(struct request_queue *q, struct request *rq)
|
||||||
{
|
{
|
||||||
elevator_t *e = q->elevator;
|
elevator_t *e = q->elevator;
|
||||||
|
|
||||||
@@ -299,13 +301,13 @@ static void elv_rqhash_add(request_queue_t *q, struct request *rq)
|
|||||||
hlist_add_head(&rq->hash, &e->hash[ELV_HASH_FN(rq_hash_key(rq))]);
|
hlist_add_head(&rq->hash, &e->hash[ELV_HASH_FN(rq_hash_key(rq))]);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void elv_rqhash_reposition(request_queue_t *q, struct request *rq)
|
static void elv_rqhash_reposition(struct request_queue *q, struct request *rq)
|
||||||
{
|
{
|
||||||
__elv_rqhash_del(rq);
|
__elv_rqhash_del(rq);
|
||||||
elv_rqhash_add(q, rq);
|
elv_rqhash_add(q, rq);
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct request *elv_rqhash_find(request_queue_t *q, sector_t offset)
|
static struct request *elv_rqhash_find(struct request_queue *q, sector_t offset)
|
||||||
{
|
{
|
||||||
elevator_t *e = q->elevator;
|
elevator_t *e = q->elevator;
|
||||||
struct hlist_head *hash_list = &e->hash[ELV_HASH_FN(offset)];
|
struct hlist_head *hash_list = &e->hash[ELV_HASH_FN(offset)];
|
||||||
@@ -391,7 +393,7 @@ EXPORT_SYMBOL(elv_rb_find);
|
|||||||
* entry. rq is sort insted into the dispatch queue. To be used by
|
* entry. rq is sort insted into the dispatch queue. To be used by
|
||||||
* specific elevators.
|
* specific elevators.
|
||||||
*/
|
*/
|
||||||
void elv_dispatch_sort(request_queue_t *q, struct request *rq)
|
void elv_dispatch_sort(struct request_queue *q, struct request *rq)
|
||||||
{
|
{
|
||||||
sector_t boundary;
|
sector_t boundary;
|
||||||
struct list_head *entry;
|
struct list_head *entry;
|
||||||
@@ -449,7 +451,7 @@ void elv_dispatch_add_tail(struct request_queue *q, struct request *rq)
|
|||||||
|
|
||||||
EXPORT_SYMBOL(elv_dispatch_add_tail);
|
EXPORT_SYMBOL(elv_dispatch_add_tail);
|
||||||
|
|
||||||
int elv_merge(request_queue_t *q, struct request **req, struct bio *bio)
|
int elv_merge(struct request_queue *q, struct request **req, struct bio *bio)
|
||||||
{
|
{
|
||||||
elevator_t *e = q->elevator;
|
elevator_t *e = q->elevator;
|
||||||
struct request *__rq;
|
struct request *__rq;
|
||||||
@@ -481,7 +483,7 @@ int elv_merge(request_queue_t *q, struct request **req, struct bio *bio)
|
|||||||
return ELEVATOR_NO_MERGE;
|
return ELEVATOR_NO_MERGE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void elv_merged_request(request_queue_t *q, struct request *rq, int type)
|
void elv_merged_request(struct request_queue *q, struct request *rq, int type)
|
||||||
{
|
{
|
||||||
elevator_t *e = q->elevator;
|
elevator_t *e = q->elevator;
|
||||||
|
|
||||||
@@ -494,7 +496,7 @@ void elv_merged_request(request_queue_t *q, struct request *rq, int type)
|
|||||||
q->last_merge = rq;
|
q->last_merge = rq;
|
||||||
}
|
}
|
||||||
|
|
||||||
void elv_merge_requests(request_queue_t *q, struct request *rq,
|
void elv_merge_requests(struct request_queue *q, struct request *rq,
|
||||||
struct request *next)
|
struct request *next)
|
||||||
{
|
{
|
||||||
elevator_t *e = q->elevator;
|
elevator_t *e = q->elevator;
|
||||||
@@ -509,7 +511,7 @@ void elv_merge_requests(request_queue_t *q, struct request *rq,
|
|||||||
q->last_merge = rq;
|
q->last_merge = rq;
|
||||||
}
|
}
|
||||||
|
|
||||||
void elv_requeue_request(request_queue_t *q, struct request *rq)
|
void elv_requeue_request(struct request_queue *q, struct request *rq)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* it already went through dequeue, we need to decrement the
|
* it already went through dequeue, we need to decrement the
|
||||||
@@ -526,7 +528,7 @@ void elv_requeue_request(request_queue_t *q, struct request *rq)
|
|||||||
elv_insert(q, rq, ELEVATOR_INSERT_REQUEUE);
|
elv_insert(q, rq, ELEVATOR_INSERT_REQUEUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void elv_drain_elevator(request_queue_t *q)
|
static void elv_drain_elevator(struct request_queue *q)
|
||||||
{
|
{
|
||||||
static int printed;
|
static int printed;
|
||||||
while (q->elevator->ops->elevator_dispatch_fn(q, 1))
|
while (q->elevator->ops->elevator_dispatch_fn(q, 1))
|
||||||
@@ -540,7 +542,7 @@ static void elv_drain_elevator(request_queue_t *q)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void elv_insert(request_queue_t *q, struct request *rq, int where)
|
void elv_insert(struct request_queue *q, struct request *rq, int where)
|
||||||
{
|
{
|
||||||
struct list_head *pos;
|
struct list_head *pos;
|
||||||
unsigned ordseq;
|
unsigned ordseq;
|
||||||
@@ -638,7 +640,7 @@ void elv_insert(request_queue_t *q, struct request *rq, int where)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void __elv_add_request(request_queue_t *q, struct request *rq, int where,
|
void __elv_add_request(struct request_queue *q, struct request *rq, int where,
|
||||||
int plug)
|
int plug)
|
||||||
{
|
{
|
||||||
if (q->ordcolor)
|
if (q->ordcolor)
|
||||||
@@ -676,7 +678,7 @@ void __elv_add_request(request_queue_t *q, struct request *rq, int where,
|
|||||||
|
|
||||||
EXPORT_SYMBOL(__elv_add_request);
|
EXPORT_SYMBOL(__elv_add_request);
|
||||||
|
|
||||||
void elv_add_request(request_queue_t *q, struct request *rq, int where,
|
void elv_add_request(struct request_queue *q, struct request *rq, int where,
|
||||||
int plug)
|
int plug)
|
||||||
{
|
{
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
@@ -688,7 +690,7 @@ void elv_add_request(request_queue_t *q, struct request *rq, int where,
|
|||||||
|
|
||||||
EXPORT_SYMBOL(elv_add_request);
|
EXPORT_SYMBOL(elv_add_request);
|
||||||
|
|
||||||
static inline struct request *__elv_next_request(request_queue_t *q)
|
static inline struct request *__elv_next_request(struct request_queue *q)
|
||||||
{
|
{
|
||||||
struct request *rq;
|
struct request *rq;
|
||||||
|
|
||||||
@@ -704,7 +706,7 @@ static inline struct request *__elv_next_request(request_queue_t *q)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
struct request *elv_next_request(request_queue_t *q)
|
struct request *elv_next_request(struct request_queue *q)
|
||||||
{
|
{
|
||||||
struct request *rq;
|
struct request *rq;
|
||||||
int ret;
|
int ret;
|
||||||
@@ -770,7 +772,7 @@ struct request *elv_next_request(request_queue_t *q)
|
|||||||
|
|
||||||
EXPORT_SYMBOL(elv_next_request);
|
EXPORT_SYMBOL(elv_next_request);
|
||||||
|
|
||||||
void elv_dequeue_request(request_queue_t *q, struct request *rq)
|
void elv_dequeue_request(struct request_queue *q, struct request *rq)
|
||||||
{
|
{
|
||||||
BUG_ON(list_empty(&rq->queuelist));
|
BUG_ON(list_empty(&rq->queuelist));
|
||||||
BUG_ON(ELV_ON_HASH(rq));
|
BUG_ON(ELV_ON_HASH(rq));
|
||||||
@@ -788,7 +790,7 @@ void elv_dequeue_request(request_queue_t *q, struct request *rq)
|
|||||||
|
|
||||||
EXPORT_SYMBOL(elv_dequeue_request);
|
EXPORT_SYMBOL(elv_dequeue_request);
|
||||||
|
|
||||||
int elv_queue_empty(request_queue_t *q)
|
int elv_queue_empty(struct request_queue *q)
|
||||||
{
|
{
|
||||||
elevator_t *e = q->elevator;
|
elevator_t *e = q->elevator;
|
||||||
|
|
||||||
@@ -803,7 +805,7 @@ int elv_queue_empty(request_queue_t *q)
|
|||||||
|
|
||||||
EXPORT_SYMBOL(elv_queue_empty);
|
EXPORT_SYMBOL(elv_queue_empty);
|
||||||
|
|
||||||
struct request *elv_latter_request(request_queue_t *q, struct request *rq)
|
struct request *elv_latter_request(struct request_queue *q, struct request *rq)
|
||||||
{
|
{
|
||||||
elevator_t *e = q->elevator;
|
elevator_t *e = q->elevator;
|
||||||
|
|
||||||
@@ -812,7 +814,7 @@ struct request *elv_latter_request(request_queue_t *q, struct request *rq)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct request *elv_former_request(request_queue_t *q, struct request *rq)
|
struct request *elv_former_request(struct request_queue *q, struct request *rq)
|
||||||
{
|
{
|
||||||
elevator_t *e = q->elevator;
|
elevator_t *e = q->elevator;
|
||||||
|
|
||||||
@@ -821,7 +823,7 @@ struct request *elv_former_request(request_queue_t *q, struct request *rq)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
int elv_set_request(request_queue_t *q, struct request *rq, gfp_t gfp_mask)
|
int elv_set_request(struct request_queue *q, struct request *rq, gfp_t gfp_mask)
|
||||||
{
|
{
|
||||||
elevator_t *e = q->elevator;
|
elevator_t *e = q->elevator;
|
||||||
|
|
||||||
@@ -832,7 +834,7 @@ int elv_set_request(request_queue_t *q, struct request *rq, gfp_t gfp_mask)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void elv_put_request(request_queue_t *q, struct request *rq)
|
void elv_put_request(struct request_queue *q, struct request *rq)
|
||||||
{
|
{
|
||||||
elevator_t *e = q->elevator;
|
elevator_t *e = q->elevator;
|
||||||
|
|
||||||
@@ -840,7 +842,7 @@ void elv_put_request(request_queue_t *q, struct request *rq)
|
|||||||
e->ops->elevator_put_req_fn(rq);
|
e->ops->elevator_put_req_fn(rq);
|
||||||
}
|
}
|
||||||
|
|
||||||
int elv_may_queue(request_queue_t *q, int rw)
|
int elv_may_queue(struct request_queue *q, int rw)
|
||||||
{
|
{
|
||||||
elevator_t *e = q->elevator;
|
elevator_t *e = q->elevator;
|
||||||
|
|
||||||
@@ -850,7 +852,7 @@ int elv_may_queue(request_queue_t *q, int rw)
|
|||||||
return ELV_MQUEUE_MAY;
|
return ELV_MQUEUE_MAY;
|
||||||
}
|
}
|
||||||
|
|
||||||
void elv_completed_request(request_queue_t *q, struct request *rq)
|
void elv_completed_request(struct request_queue *q, struct request *rq)
|
||||||
{
|
{
|
||||||
elevator_t *e = q->elevator;
|
elevator_t *e = q->elevator;
|
||||||
|
|
||||||
@@ -1006,7 +1008,7 @@ EXPORT_SYMBOL_GPL(elv_unregister);
|
|||||||
* need for the new one. this way we have a chance of going back to the old
|
* need for the new one. this way we have a chance of going back to the old
|
||||||
* one, if the new one fails init for some reason.
|
* one, if the new one fails init for some reason.
|
||||||
*/
|
*/
|
||||||
static int elevator_switch(request_queue_t *q, struct elevator_type *new_e)
|
static int elevator_switch(struct request_queue *q, struct elevator_type *new_e)
|
||||||
{
|
{
|
||||||
elevator_t *old_elevator, *e;
|
elevator_t *old_elevator, *e;
|
||||||
void *data;
|
void *data;
|
||||||
@@ -1078,7 +1080,8 @@ fail_register:
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
ssize_t elv_iosched_store(request_queue_t *q, const char *name, size_t count)
|
ssize_t elv_iosched_store(struct request_queue *q, const char *name,
|
||||||
|
size_t count)
|
||||||
{
|
{
|
||||||
char elevator_name[ELV_NAME_MAX];
|
char elevator_name[ELV_NAME_MAX];
|
||||||
size_t len;
|
size_t len;
|
||||||
@@ -1107,7 +1110,7 @@ ssize_t elv_iosched_store(request_queue_t *q, const char *name, size_t count)
|
|||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
ssize_t elv_iosched_show(request_queue_t *q, char *name)
|
ssize_t elv_iosched_show(struct request_queue *q, char *name)
|
||||||
{
|
{
|
||||||
elevator_t *e = q->elevator;
|
elevator_t *e = q->elevator;
|
||||||
struct elevator_type *elv = e->elevator_type;
|
struct elevator_type *elv = e->elevator_type;
|
||||||
@@ -1127,7 +1130,8 @@ ssize_t elv_iosched_show(request_queue_t *q, char *name)
|
|||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct request *elv_rb_former_request(request_queue_t *q, struct request *rq)
|
struct request *elv_rb_former_request(struct request_queue *q,
|
||||||
|
struct request *rq)
|
||||||
{
|
{
|
||||||
struct rb_node *rbprev = rb_prev(&rq->rb_node);
|
struct rb_node *rbprev = rb_prev(&rq->rb_node);
|
||||||
|
|
||||||
@@ -1139,7 +1143,8 @@ struct request *elv_rb_former_request(request_queue_t *q, struct request *rq)
|
|||||||
|
|
||||||
EXPORT_SYMBOL(elv_rb_former_request);
|
EXPORT_SYMBOL(elv_rb_former_request);
|
||||||
|
|
||||||
struct request *elv_rb_latter_request(request_queue_t *q, struct request *rq)
|
struct request *elv_rb_latter_request(struct request_queue *q,
|
||||||
|
struct request *rq)
|
||||||
{
|
{
|
||||||
struct rb_node *rbnext = rb_next(&rq->rb_node);
|
struct rb_node *rbnext = rb_next(&rq->rb_node);
|
||||||
|
|
||||||
|
|||||||
+112
-103
File diff suppressed because it is too large
Load Diff
@@ -11,13 +11,13 @@ struct noop_data {
|
|||||||
struct list_head queue;
|
struct list_head queue;
|
||||||
};
|
};
|
||||||
|
|
||||||
static void noop_merged_requests(request_queue_t *q, struct request *rq,
|
static void noop_merged_requests(struct request_queue *q, struct request *rq,
|
||||||
struct request *next)
|
struct request *next)
|
||||||
{
|
{
|
||||||
list_del_init(&next->queuelist);
|
list_del_init(&next->queuelist);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int noop_dispatch(request_queue_t *q, int force)
|
static int noop_dispatch(struct request_queue *q, int force)
|
||||||
{
|
{
|
||||||
struct noop_data *nd = q->elevator->elevator_data;
|
struct noop_data *nd = q->elevator->elevator_data;
|
||||||
|
|
||||||
@@ -31,14 +31,14 @@ static int noop_dispatch(request_queue_t *q, int force)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void noop_add_request(request_queue_t *q, struct request *rq)
|
static void noop_add_request(struct request_queue *q, struct request *rq)
|
||||||
{
|
{
|
||||||
struct noop_data *nd = q->elevator->elevator_data;
|
struct noop_data *nd = q->elevator->elevator_data;
|
||||||
|
|
||||||
list_add_tail(&rq->queuelist, &nd->queue);
|
list_add_tail(&rq->queuelist, &nd->queue);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int noop_queue_empty(request_queue_t *q)
|
static int noop_queue_empty(struct request_queue *q)
|
||||||
{
|
{
|
||||||
struct noop_data *nd = q->elevator->elevator_data;
|
struct noop_data *nd = q->elevator->elevator_data;
|
||||||
|
|
||||||
@@ -46,7 +46,7 @@ static int noop_queue_empty(request_queue_t *q)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static struct request *
|
static struct request *
|
||||||
noop_former_request(request_queue_t *q, struct request *rq)
|
noop_former_request(struct request_queue *q, struct request *rq)
|
||||||
{
|
{
|
||||||
struct noop_data *nd = q->elevator->elevator_data;
|
struct noop_data *nd = q->elevator->elevator_data;
|
||||||
|
|
||||||
@@ -56,7 +56,7 @@ noop_former_request(request_queue_t *q, struct request *rq)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static struct request *
|
static struct request *
|
||||||
noop_latter_request(request_queue_t *q, struct request *rq)
|
noop_latter_request(struct request_queue *q, struct request *rq)
|
||||||
{
|
{
|
||||||
struct noop_data *nd = q->elevator->elevator_data;
|
struct noop_data *nd = q->elevator->elevator_data;
|
||||||
|
|
||||||
@@ -65,7 +65,7 @@ noop_latter_request(request_queue_t *q, struct request *rq)
|
|||||||
return list_entry(rq->queuelist.next, struct request, queuelist);
|
return list_entry(rq->queuelist.next, struct request, queuelist);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void *noop_init_queue(request_queue_t *q)
|
static void *noop_init_queue(struct request_queue *q)
|
||||||
{
|
{
|
||||||
struct noop_data *nd;
|
struct noop_data *nd;
|
||||||
|
|
||||||
|
|||||||
+13
-11
@@ -49,22 +49,22 @@ static int sg_get_version(int __user *p)
|
|||||||
return put_user(sg_version_num, p);
|
return put_user(sg_version_num, p);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int scsi_get_idlun(request_queue_t *q, int __user *p)
|
static int scsi_get_idlun(struct request_queue *q, int __user *p)
|
||||||
{
|
{
|
||||||
return put_user(0, p);
|
return put_user(0, p);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int scsi_get_bus(request_queue_t *q, int __user *p)
|
static int scsi_get_bus(struct request_queue *q, int __user *p)
|
||||||
{
|
{
|
||||||
return put_user(0, p);
|
return put_user(0, p);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int sg_get_timeout(request_queue_t *q)
|
static int sg_get_timeout(struct request_queue *q)
|
||||||
{
|
{
|
||||||
return q->sg_timeout / (HZ / USER_HZ);
|
return q->sg_timeout / (HZ / USER_HZ);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int sg_set_timeout(request_queue_t *q, int __user *p)
|
static int sg_set_timeout(struct request_queue *q, int __user *p)
|
||||||
{
|
{
|
||||||
int timeout, err = get_user(timeout, p);
|
int timeout, err = get_user(timeout, p);
|
||||||
|
|
||||||
@@ -74,14 +74,14 @@ static int sg_set_timeout(request_queue_t *q, int __user *p)
|
|||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int sg_get_reserved_size(request_queue_t *q, int __user *p)
|
static int sg_get_reserved_size(struct request_queue *q, int __user *p)
|
||||||
{
|
{
|
||||||
unsigned val = min(q->sg_reserved_size, q->max_sectors << 9);
|
unsigned val = min(q->sg_reserved_size, q->max_sectors << 9);
|
||||||
|
|
||||||
return put_user(val, p);
|
return put_user(val, p);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int sg_set_reserved_size(request_queue_t *q, int __user *p)
|
static int sg_set_reserved_size(struct request_queue *q, int __user *p)
|
||||||
{
|
{
|
||||||
int size, err = get_user(size, p);
|
int size, err = get_user(size, p);
|
||||||
|
|
||||||
@@ -101,7 +101,7 @@ static int sg_set_reserved_size(request_queue_t *q, int __user *p)
|
|||||||
* will always return that we are ATAPI even for a real SCSI drive, I'm not
|
* will always return that we are ATAPI even for a real SCSI drive, I'm not
|
||||||
* so sure this is worth doing anything about (why would you care??)
|
* so sure this is worth doing anything about (why would you care??)
|
||||||
*/
|
*/
|
||||||
static int sg_emulated_host(request_queue_t *q, int __user *p)
|
static int sg_emulated_host(struct request_queue *q, int __user *p)
|
||||||
{
|
{
|
||||||
return put_user(1, p);
|
return put_user(1, p);
|
||||||
}
|
}
|
||||||
@@ -214,7 +214,7 @@ int blk_verify_command(unsigned char *cmd, int has_write_perm)
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(blk_verify_command);
|
EXPORT_SYMBOL_GPL(blk_verify_command);
|
||||||
|
|
||||||
static int blk_fill_sghdr_rq(request_queue_t *q, struct request *rq,
|
static int blk_fill_sghdr_rq(struct request_queue *q, struct request *rq,
|
||||||
struct sg_io_hdr *hdr, int has_write_perm)
|
struct sg_io_hdr *hdr, int has_write_perm)
|
||||||
{
|
{
|
||||||
memset(rq->cmd, 0, BLK_MAX_CDB); /* ATAPI hates garbage after CDB */
|
memset(rq->cmd, 0, BLK_MAX_CDB); /* ATAPI hates garbage after CDB */
|
||||||
@@ -286,7 +286,7 @@ static int blk_complete_sghdr_rq(struct request *rq, struct sg_io_hdr *hdr,
|
|||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int sg_io(struct file *file, request_queue_t *q,
|
static int sg_io(struct file *file, struct request_queue *q,
|
||||||
struct gendisk *bd_disk, struct sg_io_hdr *hdr)
|
struct gendisk *bd_disk, struct sg_io_hdr *hdr)
|
||||||
{
|
{
|
||||||
unsigned long start_time;
|
unsigned long start_time;
|
||||||
@@ -519,7 +519,8 @@ error:
|
|||||||
EXPORT_SYMBOL_GPL(sg_scsi_ioctl);
|
EXPORT_SYMBOL_GPL(sg_scsi_ioctl);
|
||||||
|
|
||||||
/* Send basic block requests */
|
/* Send basic block requests */
|
||||||
static int __blk_send_generic(request_queue_t *q, struct gendisk *bd_disk, int cmd, int data)
|
static int __blk_send_generic(struct request_queue *q, struct gendisk *bd_disk,
|
||||||
|
int cmd, int data)
|
||||||
{
|
{
|
||||||
struct request *rq;
|
struct request *rq;
|
||||||
int err;
|
int err;
|
||||||
@@ -539,7 +540,8 @@ static int __blk_send_generic(request_queue_t *q, struct gendisk *bd_disk, int c
|
|||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int blk_send_start_stop(request_queue_t *q, struct gendisk *bd_disk, int data)
|
static inline int blk_send_start_stop(struct request_queue *q,
|
||||||
|
struct gendisk *bd_disk, int data)
|
||||||
{
|
{
|
||||||
return __blk_send_generic(q, bd_disk, GPCMD_START_STOP_UNIT, data);
|
return __blk_send_generic(q, bd_disk, GPCMD_START_STOP_UNIT, data);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -372,7 +372,7 @@ static int fd_test_drive_present(int drive);
|
|||||||
static void config_types(void);
|
static void config_types(void);
|
||||||
static int floppy_open(struct inode *inode, struct file *filp);
|
static int floppy_open(struct inode *inode, struct file *filp);
|
||||||
static int floppy_release(struct inode *inode, struct file *filp);
|
static int floppy_release(struct inode *inode, struct file *filp);
|
||||||
static void do_fd_request(request_queue_t *);
|
static void do_fd_request(struct request_queue *);
|
||||||
|
|
||||||
/************************* End of Prototypes **************************/
|
/************************* End of Prototypes **************************/
|
||||||
|
|
||||||
@@ -1271,7 +1271,7 @@ static void fd1772_checkint(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void do_fd_request(request_queue_t* q)
|
static void do_fd_request(struct request_queue* q)
|
||||||
{
|
{
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
|
||||||
|
|||||||
@@ -924,7 +924,7 @@ static void mfm_request(void)
|
|||||||
DBG("mfm_request: Dropping out bottom\n");
|
DBG("mfm_request: Dropping out bottom\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void do_mfm_request(request_queue_t *q)
|
static void do_mfm_request(struct request_queue *q)
|
||||||
{
|
{
|
||||||
DBG("do_mfm_request: about to mfm_request\n");
|
DBG("do_mfm_request: about to mfm_request\n");
|
||||||
mfm_request();
|
mfm_request();
|
||||||
|
|||||||
@@ -768,7 +768,7 @@ static void ata_scsi_dev_config(struct scsi_device *sdev,
|
|||||||
* Decrement max hw segments accordingly.
|
* Decrement max hw segments accordingly.
|
||||||
*/
|
*/
|
||||||
if (dev->class == ATA_DEV_ATAPI) {
|
if (dev->class == ATA_DEV_ATAPI) {
|
||||||
request_queue_t *q = sdev->request_queue;
|
struct request_queue *q = sdev->request_queue;
|
||||||
blk_queue_max_hw_segments(q, q->max_hw_segments - 1);
|
blk_queue_max_hw_segments(q, q->max_hw_segments - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1422,7 +1422,7 @@ static void redo_fd_request(void)
|
|||||||
goto repeat;
|
goto repeat;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void do_fd_request(request_queue_t * q)
|
static void do_fd_request(struct request_queue * q)
|
||||||
{
|
{
|
||||||
redo_fd_request();
|
redo_fd_request();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -138,7 +138,7 @@ struct aoedev {
|
|||||||
u16 maxbcnt;
|
u16 maxbcnt;
|
||||||
struct work_struct work;/* disk create work struct */
|
struct work_struct work;/* disk create work struct */
|
||||||
struct gendisk *gd;
|
struct gendisk *gd;
|
||||||
request_queue_t blkq;
|
struct request_queue blkq;
|
||||||
struct hd_geometry geo;
|
struct hd_geometry geo;
|
||||||
sector_t ssize;
|
sector_t ssize;
|
||||||
struct timer_list timer;
|
struct timer_list timer;
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user