Skip to content

Commit

Permalink
block: always assign default lock to queues
Browse files Browse the repository at this point in the history
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 <[email protected]>
  • Loading branch information
Jens Axboe committed Jul 28, 2009
1 parent a85a00a commit a4e7d46
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 7 deletions.
7 changes: 0 additions & 7 deletions block/blk-core.c
Original file line number Diff line number Diff line change
Expand Up @@ -575,13 +575,6 @@ blk_init_queue_node(request_fn_proc *rfn, spinlock_t *lock, int node_id)
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->prep_rq_fn = NULL;
q->unplug_fn = generic_unplug_device;
Expand Down
7 changes: 7 additions & 0 deletions block/blk-settings.c
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,13 @@ void blk_queue_make_request(struct request_queue *q, make_request_fn *mfn)

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
*/
Expand Down

0 comments on commit a4e7d46

Please sign in to comment.