forked from Minki/linux
ide: remove ide_wait/head_wait path in ide_do_drive_cmd
Now all the users of ide_do_drive_cmd using ide_wait/head_wait are converted to use blk_execute_rq this removes the ide_wait/head_wait path in ide_do_drive_cmd. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Cc: Borislav Petkov <petkovbb@gmail.com> Cc: Jens Axboe <jens.axboe@oracle.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
This commit is contained in:
parent
5b114715ed
commit
5f2e1ceef4
@ -1584,23 +1584,11 @@ int ide_do_drive_cmd (ide_drive_t *drive, struct request *rq, ide_action_t actio
|
|||||||
{
|
{
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
ide_hwgroup_t *hwgroup = HWGROUP(drive);
|
ide_hwgroup_t *hwgroup = HWGROUP(drive);
|
||||||
DECLARE_COMPLETION_ONSTACK(wait);
|
int where = ELEVATOR_INSERT_BACK;
|
||||||
int where = ELEVATOR_INSERT_BACK, err;
|
|
||||||
int must_wait = (action == ide_wait || action == ide_head_wait);
|
|
||||||
|
|
||||||
rq->errors = 0;
|
rq->errors = 0;
|
||||||
|
|
||||||
/*
|
if (action == ide_preempt)
|
||||||
* we need to hold an extra reference to request for safe inspection
|
|
||||||
* after completion
|
|
||||||
*/
|
|
||||||
if (must_wait) {
|
|
||||||
rq->ref_count++;
|
|
||||||
rq->end_io_data = &wait;
|
|
||||||
rq->end_io = blk_end_sync_rq;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (action == ide_preempt || action == ide_head_wait)
|
|
||||||
where = ELEVATOR_INSERT_FRONT;
|
where = ELEVATOR_INSERT_FRONT;
|
||||||
|
|
||||||
spin_lock_irqsave(&ide_lock, flags);
|
spin_lock_irqsave(&ide_lock, flags);
|
||||||
@ -1613,16 +1601,7 @@ int ide_do_drive_cmd (ide_drive_t *drive, struct request *rq, ide_action_t actio
|
|||||||
do_ide_request(drive->queue);
|
do_ide_request(drive->queue);
|
||||||
spin_unlock_irqrestore(&ide_lock, flags);
|
spin_unlock_irqrestore(&ide_lock, flags);
|
||||||
|
|
||||||
err = 0;
|
return 0;
|
||||||
if (must_wait) {
|
|
||||||
wait_for_completion(&wait);
|
|
||||||
if (rq->errors)
|
|
||||||
err = -EIO;
|
|
||||||
|
|
||||||
blk_put_request(rq);
|
|
||||||
}
|
|
||||||
|
|
||||||
return err;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
EXPORT_SYMBOL(ide_do_drive_cmd);
|
EXPORT_SYMBOL(ide_do_drive_cmd);
|
||||||
|
Loading…
Reference in New Issue
Block a user