diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-07-15 14:15:36 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-07-15 14:15:36 -0400 |
commit | 98339cbd360b77c3167db287fd611468c2c44559 (patch) | |
tree | 06779e040c18aa40fc5a6e15b132fa1f70ec45f6 /block | |
parent | e4e0fadcd929138aa82130a1c5f22206d86d7bb2 (diff) | |
parent | cbbc4e818de4451cdef75a112b7fc8a523d5d2a0 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6: (80 commits)
ide-floppy: fix unfortunate function naming
ide-tape: unify idetape_create_read/write_cmd
ide: add ide_pc_intr() helper
ide-{floppy,scsi}: read Status Register before stopping DMA engine
ide-scsi: add more debugging to idescsi_pc_intr()
ide-scsi: use pc->callback
ide-floppy: add more debugging to idefloppy_pc_intr()
ide-tape: always log debug info in idetape_pc_intr() if debugging is enabled
ide-tape: add ide_tape_io_buffers() helper
ide-tape: factor out DSC handling from idetape_pc_intr()
ide-{floppy,tape}: move checking of ->failed_pc to ->callback
ide: add ide_issue_pc() helper
ide: add PC_FLAG_DRQ_INTERRUPT pc flag
ide-scsi: move idescsi_map_sg() call out from idescsi_issue_pc()
ide: add ide_transfer_pc() helper
ide-scsi: set drive->scsi flag for devices handled by the driver
ide-{cd,floppy,tape}: remove checking for drive->scsi
ide: add PC_FLAG_ZIP_DRIVE pc flag
ide-tape: factor out waiting for good ireason from idetape_transfer_pc()
ide-tape: set PC_FLAG_DMA_IN_PROGRESS flag in idetape_transfer_pc()
...
Diffstat (limited to 'block')
-rw-r--r-- | block/blk-core.c | 12 | ||||
-rw-r--r-- | block/blk-exec.c | 6 |
2 files changed, 7 insertions, 11 deletions
diff --git a/block/blk-core.c b/block/blk-core.c index c6e536597c8a..fef79ccb2a11 100644 --- a/block/blk-core.c +++ b/block/blk-core.c | |||
@@ -1042,15 +1042,9 @@ void blk_put_request(struct request *req) | |||
1042 | unsigned long flags; | 1042 | unsigned long flags; |
1043 | struct request_queue *q = req->q; | 1043 | struct request_queue *q = req->q; |
1044 | 1044 | ||
1045 | /* | 1045 | spin_lock_irqsave(q->queue_lock, flags); |
1046 | * Gee, IDE calls in w/ NULL q. Fix IDE and remove the | 1046 | __blk_put_request(q, req); |
1047 | * following if (q) test. | 1047 | spin_unlock_irqrestore(q->queue_lock, flags); |
1048 | */ | ||
1049 | if (q) { | ||
1050 | spin_lock_irqsave(q->queue_lock, flags); | ||
1051 | __blk_put_request(q, req); | ||
1052 | spin_unlock_irqrestore(q->queue_lock, flags); | ||
1053 | } | ||
1054 | } | 1048 | } |
1055 | EXPORT_SYMBOL(blk_put_request); | 1049 | EXPORT_SYMBOL(blk_put_request); |
1056 | 1050 | ||
diff --git a/block/blk-exec.c b/block/blk-exec.c index 391dd6224890..9bceff7674f2 100644 --- a/block/blk-exec.c +++ b/block/blk-exec.c | |||
@@ -18,7 +18,7 @@ | |||
18 | * @rq: request to complete | 18 | * @rq: request to complete |
19 | * @error: end io status of the request | 19 | * @error: end io status of the request |
20 | */ | 20 | */ |
21 | void blk_end_sync_rq(struct request *rq, int error) | 21 | static void blk_end_sync_rq(struct request *rq, int error) |
22 | { | 22 | { |
23 | struct completion *waiting = rq->end_io_data; | 23 | struct completion *waiting = rq->end_io_data; |
24 | 24 | ||
@@ -31,7 +31,6 @@ void blk_end_sync_rq(struct request *rq, int error) | |||
31 | */ | 31 | */ |
32 | complete(waiting); | 32 | complete(waiting); |
33 | } | 33 | } |
34 | EXPORT_SYMBOL(blk_end_sync_rq); | ||
35 | 34 | ||
36 | /** | 35 | /** |
37 | * blk_execute_rq_nowait - insert a request into queue for execution | 36 | * blk_execute_rq_nowait - insert a request into queue for execution |
@@ -58,6 +57,9 @@ void blk_execute_rq_nowait(struct request_queue *q, struct gendisk *bd_disk, | |||
58 | spin_lock_irq(q->queue_lock); | 57 | spin_lock_irq(q->queue_lock); |
59 | __elv_add_request(q, rq, where, 1); | 58 | __elv_add_request(q, rq, where, 1); |
60 | __generic_unplug_device(q); | 59 | __generic_unplug_device(q); |
60 | /* the queue is stopped so it won't be plugged+unplugged */ | ||
61 | if (blk_pm_resume_request(rq)) | ||
62 | q->request_fn(q); | ||
61 | spin_unlock_irq(q->queue_lock); | 63 | spin_unlock_irq(q->queue_lock); |
62 | } | 64 | } |
63 | EXPORT_SYMBOL_GPL(blk_execute_rq_nowait); | 65 | EXPORT_SYMBOL_GPL(blk_execute_rq_nowait); |