diff options
Diffstat (limited to 'drivers/block/paride/pd.c')
-rw-r--r-- | drivers/block/paride/pd.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/drivers/block/paride/pd.c b/drivers/block/paride/pd.c index 2403721f9db1..38578b9dbfd1 100644 --- a/drivers/block/paride/pd.c +++ b/drivers/block/paride/pd.c | |||
@@ -437,7 +437,7 @@ static char *pd_buf; /* buffer for request in progress */ | |||
437 | 437 | ||
438 | static enum action do_pd_io_start(void) | 438 | static enum action do_pd_io_start(void) |
439 | { | 439 | { |
440 | if (pd_req->flags & REQ_SPECIAL) { | 440 | if (blk_special_request(pd_req)) { |
441 | phase = pd_special; | 441 | phase = pd_special; |
442 | return pd_special(); | 442 | return pd_special(); |
443 | } | 443 | } |
@@ -719,14 +719,12 @@ static int pd_special_command(struct pd_unit *disk, | |||
719 | 719 | ||
720 | memset(&rq, 0, sizeof(rq)); | 720 | memset(&rq, 0, sizeof(rq)); |
721 | rq.errors = 0; | 721 | rq.errors = 0; |
722 | rq.rq_status = RQ_ACTIVE; | ||
723 | rq.rq_disk = disk->gd; | 722 | rq.rq_disk = disk->gd; |
724 | rq.ref_count = 1; | 723 | rq.ref_count = 1; |
725 | rq.waiting = &wait; | 724 | rq.end_io_data = &wait; |
726 | rq.end_io = blk_end_sync_rq; | 725 | rq.end_io = blk_end_sync_rq; |
727 | blk_insert_request(disk->gd->queue, &rq, 0, func); | 726 | blk_insert_request(disk->gd->queue, &rq, 0, func); |
728 | wait_for_completion(&wait); | 727 | wait_for_completion(&wait); |
729 | rq.waiting = NULL; | ||
730 | if (rq.errors) | 728 | if (rq.errors) |
731 | err = -EIO; | 729 | err = -EIO; |
732 | blk_put_request(&rq); | 730 | blk_put_request(&rq); |