|
@@ -1600,13 +1600,12 @@ int ide_do_drive_cmd (ide_drive_t *drive, struct request *rq, ide_action_t actio
|
|
rq->end_io = blk_end_sync_rq;
|
|
rq->end_io = blk_end_sync_rq;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ if (action == ide_preempt || action == ide_head_wait)
|
|
|
|
+ where = ELEVATOR_INSERT_FRONT;
|
|
|
|
+
|
|
spin_lock_irqsave(&ide_lock, flags);
|
|
spin_lock_irqsave(&ide_lock, flags);
|
|
if (action == ide_preempt)
|
|
if (action == ide_preempt)
|
|
hwgroup->rq = NULL;
|
|
hwgroup->rq = NULL;
|
|
- if (action == ide_preempt || action == ide_head_wait) {
|
|
|
|
- where = ELEVATOR_INSERT_FRONT;
|
|
|
|
- rq->cmd_flags |= REQ_PREEMPT;
|
|
|
|
- }
|
|
|
|
__elv_add_request(drive->queue, rq, where, 0);
|
|
__elv_add_request(drive->queue, rq, where, 0);
|
|
ide_do_request(hwgroup, IDE_NO_IRQ);
|
|
ide_do_request(hwgroup, IDE_NO_IRQ);
|
|
spin_unlock_irqrestore(&ide_lock, flags);
|
|
spin_unlock_irqrestore(&ide_lock, flags);
|