block: always assign default lock to queues
Move the assignment of a default lock below blk_init_queue() to blk_queue_make_request(), so we also get to set the default lock for ->make_request_fn() based drivers. This is important since the queue flag locking requires a lock to be in place. Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
This commit is contained in:
parent
a85a00a699
commit
a4e7d46407
2 changed files with 7 additions and 7 deletions
|
@ -575,13 +575,6 @@ blk_init_queue_node(request_fn_proc *rfn, spinlock_t *lock, int node_id)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* if caller didn't supply a lock, they get per-queue locking with
|
|
||||||
* our embedded lock
|
|
||||||
*/
|
|
||||||
if (!lock)
|
|
||||||
lock = &q->__queue_lock;
|
|
||||||
|
|
||||||
q->request_fn = rfn;
|
q->request_fn = rfn;
|
||||||
q->prep_rq_fn = NULL;
|
q->prep_rq_fn = NULL;
|
||||||
q->unplug_fn = generic_unplug_device;
|
q->unplug_fn = generic_unplug_device;
|
||||||
|
|
|
@ -164,6 +164,13 @@ void blk_queue_make_request(struct request_queue *q, make_request_fn *mfn)
|
||||||
|
|
||||||
blk_set_default_limits(&q->limits);
|
blk_set_default_limits(&q->limits);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If the caller didn't supply a lock, fall back to our embedded
|
||||||
|
* per-queue locks
|
||||||
|
*/
|
||||||
|
if (!q->queue_lock)
|
||||||
|
q->queue_lock = &q->__queue_lock;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* by default assume old behaviour and bounce for any highmem page
|
* by default assume old behaviour and bounce for any highmem page
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in a new issue