diff options
Diffstat (limited to 'drivers/block/paride/pd.c')
-rw-r--r-- | drivers/block/paride/pd.c | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/drivers/block/paride/pd.c b/drivers/block/paride/pd.c index 9299455b0af6..bf5955b3d873 100644 --- a/drivers/block/paride/pd.c +++ b/drivers/block/paride/pd.c | |||
@@ -410,10 +410,12 @@ static void run_fsm(void) | |||
410 | pd_claimed = 0; | 410 | pd_claimed = 0; |
411 | phase = NULL; | 411 | phase = NULL; |
412 | spin_lock_irqsave(&pd_lock, saved_flags); | 412 | spin_lock_irqsave(&pd_lock, saved_flags); |
413 | end_request(pd_req, res); | 413 | if (!__blk_end_request_cur(pd_req, |
414 | pd_req = elv_next_request(pd_queue); | 414 | res == Ok ? 0 : -EIO)) { |
415 | if (!pd_req) | 415 | pd_req = blk_fetch_request(pd_queue); |
416 | stop = 1; | 416 | if (!pd_req) |
417 | stop = 1; | ||
418 | } | ||
417 | spin_unlock_irqrestore(&pd_lock, saved_flags); | 419 | spin_unlock_irqrestore(&pd_lock, saved_flags); |
418 | if (stop) | 420 | if (stop) |
419 | return; | 421 | return; |
@@ -443,11 +445,11 @@ static enum action do_pd_io_start(void) | |||
443 | 445 | ||
444 | pd_cmd = rq_data_dir(pd_req); | 446 | pd_cmd = rq_data_dir(pd_req); |
445 | if (pd_cmd == READ || pd_cmd == WRITE) { | 447 | if (pd_cmd == READ || pd_cmd == WRITE) { |
446 | pd_block = pd_req->sector; | 448 | pd_block = blk_rq_pos(pd_req); |
447 | pd_count = pd_req->current_nr_sectors; | 449 | pd_count = blk_rq_cur_sectors(pd_req); |
448 | if (pd_block + pd_count > get_capacity(pd_req->rq_disk)) | 450 | if (pd_block + pd_count > get_capacity(pd_req->rq_disk)) |
449 | return Fail; | 451 | return Fail; |
450 | pd_run = pd_req->nr_sectors; | 452 | pd_run = blk_rq_sectors(pd_req); |
451 | pd_buf = pd_req->buffer; | 453 | pd_buf = pd_req->buffer; |
452 | pd_retries = 0; | 454 | pd_retries = 0; |
453 | if (pd_cmd == READ) | 455 | if (pd_cmd == READ) |
@@ -477,8 +479,8 @@ static int pd_next_buf(void) | |||
477 | if (pd_count) | 479 | if (pd_count) |
478 | return 0; | 480 | return 0; |
479 | spin_lock_irqsave(&pd_lock, saved_flags); | 481 | spin_lock_irqsave(&pd_lock, saved_flags); |
480 | end_request(pd_req, 1); | 482 | __blk_end_request_cur(pd_req, 0); |
481 | pd_count = pd_req->current_nr_sectors; | 483 | pd_count = blk_rq_cur_sectors(pd_req); |
482 | pd_buf = pd_req->buffer; | 484 | pd_buf = pd_req->buffer; |
483 | spin_unlock_irqrestore(&pd_lock, saved_flags); | 485 | spin_unlock_irqrestore(&pd_lock, saved_flags); |
484 | return 0; | 486 | return 0; |
@@ -702,7 +704,7 @@ static void do_pd_request(struct request_queue * q) | |||
702 | { | 704 | { |
703 | if (pd_req) | 705 | if (pd_req) |
704 | return; | 706 | return; |
705 | pd_req = elv_next_request(q); | 707 | pd_req = blk_fetch_request(q); |
706 | if (!pd_req) | 708 | if (!pd_req) |
707 | return; | 709 | return; |
708 | 710 | ||