aboutsummaryrefslogtreecommitdiffstats
path: root/block
diff options
context:
space:
mode:
authorJens Axboe <jens.axboe@oracle.com>2006-12-19 02:34:17 -0500
committerJens Axboe <jens.axboe@oracle.com>2006-12-19 02:34:17 -0500
commit9c9381f9425ab4d2f9f0458ae9525c18bc832f59 (patch)
treee2ce862de3be70594794a6c0470bab353a012a2f /block
parent1aa4f24fe96938cabe7a1e9da8bc3bfbd1dfe3fa (diff)
[PATCH] __blk_rq_map_user() doesn't need to grab the queue_lock
It was for driver private back_merge_fn hooks, but they don't exist anymore. Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'block')
-rw-r--r--block/ll_rw_blk.c9
1 files changed, 0 insertions, 9 deletions
diff --git a/block/ll_rw_blk.c b/block/ll_rw_blk.c
index 433797934bd5..5d472e47c125 100644
--- a/block/ll_rw_blk.c
+++ b/block/ll_rw_blk.c
@@ -2359,18 +2359,10 @@ static int __blk_rq_map_user(request_queue_t *q, struct request *rq,
2359 */ 2359 */
2360 bio_get(bio); 2360 bio_get(bio);
2361 2361
2362 /*
2363 * for most (all? don't know of any) queues we could
2364 * skip grabbing the queue lock here. only drivers with
2365 * funky private ->back_merge_fn() function could be
2366 * problematic.
2367 */
2368 spin_lock_irq(q->queue_lock);
2369 if (!rq->bio) 2362 if (!rq->bio)
2370 blk_rq_bio_prep(q, rq, bio); 2363 blk_rq_bio_prep(q, rq, bio);
2371 else if (!ll_back_merge_fn(q, rq, bio)) { 2364 else if (!ll_back_merge_fn(q, rq, bio)) {
2372 ret = -EINVAL; 2365 ret = -EINVAL;
2373 spin_unlock_irq(q->queue_lock);
2374 goto unmap_bio; 2366 goto unmap_bio;
2375 } else { 2367 } else {
2376 rq->biotail->bi_next = bio; 2368 rq->biotail->bi_next = bio;
@@ -2378,7 +2370,6 @@ static int __blk_rq_map_user(request_queue_t *q, struct request *rq,
2378 2370
2379 rq->data_len += bio->bi_size; 2371 rq->data_len += bio->bi_size;
2380 } 2372 }
2381 spin_unlock_irq(q->queue_lock);
2382 2373
2383 return bio->bi_size; 2374 return bio->bi_size;
2384 2375