diff options
Diffstat (limited to 'block')
-rw-r--r-- | block/ll_rw_blk.c | 61 |
1 files changed, 15 insertions, 46 deletions
diff --git a/block/ll_rw_blk.c b/block/ll_rw_blk.c index 4889f7a8c2b7..4bd1803919ce 100644 --- a/block/ll_rw_blk.c +++ b/block/ll_rw_blk.c | |||
@@ -3432,6 +3432,20 @@ static void blk_recalc_rq_sectors(struct request *rq, int nsect) | |||
3432 | } | 3432 | } |
3433 | } | 3433 | } |
3434 | 3434 | ||
3435 | /** | ||
3436 | * __end_that_request_first - end I/O on a request | ||
3437 | * @req: the request being processed | ||
3438 | * @uptodate: 1 for success, 0 for I/O error, < 0 for specific error | ||
3439 | * @nr_bytes: number of bytes to complete | ||
3440 | * | ||
3441 | * Description: | ||
3442 | * Ends I/O on a number of bytes attached to @req, and sets it up | ||
3443 | * for the next range of segments (if any) in the cluster. | ||
3444 | * | ||
3445 | * Return: | ||
3446 | * 0 - we are done with this request, call end_that_request_last() | ||
3447 | * 1 - still buffers pending for this request | ||
3448 | **/ | ||
3435 | static int __end_that_request_first(struct request *req, int uptodate, | 3449 | static int __end_that_request_first(struct request *req, int uptodate, |
3436 | int nr_bytes) | 3450 | int nr_bytes) |
3437 | { | 3451 | { |
@@ -3548,49 +3562,6 @@ static int __end_that_request_first(struct request *req, int uptodate, | |||
3548 | return 1; | 3562 | return 1; |
3549 | } | 3563 | } |
3550 | 3564 | ||
3551 | /** | ||
3552 | * end_that_request_first - end I/O on a request | ||
3553 | * @req: the request being processed | ||
3554 | * @uptodate: 1 for success, 0 for I/O error, < 0 for specific error | ||
3555 | * @nr_sectors: number of sectors to end I/O on | ||
3556 | * | ||
3557 | * Description: | ||
3558 | * Ends I/O on a number of sectors attached to @req, and sets it up | ||
3559 | * for the next range of segments (if any) in the cluster. | ||
3560 | * | ||
3561 | * Return: | ||
3562 | * 0 - we are done with this request, call end_that_request_last() | ||
3563 | * 1 - still buffers pending for this request | ||
3564 | **/ | ||
3565 | int end_that_request_first(struct request *req, int uptodate, int nr_sectors) | ||
3566 | { | ||
3567 | return __end_that_request_first(req, uptodate, nr_sectors << 9); | ||
3568 | } | ||
3569 | |||
3570 | EXPORT_SYMBOL(end_that_request_first); | ||
3571 | |||
3572 | /** | ||
3573 | * end_that_request_chunk - end I/O on a request | ||
3574 | * @req: the request being processed | ||
3575 | * @uptodate: 1 for success, 0 for I/O error, < 0 for specific error | ||
3576 | * @nr_bytes: number of bytes to complete | ||
3577 | * | ||
3578 | * Description: | ||
3579 | * Ends I/O on a number of bytes attached to @req, and sets it up | ||
3580 | * for the next range of segments (if any). Like end_that_request_first(), | ||
3581 | * but deals with bytes instead of sectors. | ||
3582 | * | ||
3583 | * Return: | ||
3584 | * 0 - we are done with this request, call end_that_request_last() | ||
3585 | * 1 - still buffers pending for this request | ||
3586 | **/ | ||
3587 | int end_that_request_chunk(struct request *req, int uptodate, int nr_bytes) | ||
3588 | { | ||
3589 | return __end_that_request_first(req, uptodate, nr_bytes); | ||
3590 | } | ||
3591 | |||
3592 | EXPORT_SYMBOL(end_that_request_chunk); | ||
3593 | |||
3594 | /* | 3565 | /* |
3595 | * splice the completion data to a local structure and hand off to | 3566 | * splice the completion data to a local structure and hand off to |
3596 | * process_completion_queue() to complete the requests | 3567 | * process_completion_queue() to complete the requests |
@@ -3670,7 +3641,7 @@ EXPORT_SYMBOL(blk_complete_request); | |||
3670 | /* | 3641 | /* |
3671 | * queue lock must be held | 3642 | * queue lock must be held |
3672 | */ | 3643 | */ |
3673 | void end_that_request_last(struct request *req, int uptodate) | 3644 | static void end_that_request_last(struct request *req, int uptodate) |
3674 | { | 3645 | { |
3675 | struct gendisk *disk = req->rq_disk; | 3646 | struct gendisk *disk = req->rq_disk; |
3676 | int error; | 3647 | int error; |
@@ -3705,8 +3676,6 @@ void end_that_request_last(struct request *req, int uptodate) | |||
3705 | __blk_put_request(req->q, req); | 3676 | __blk_put_request(req->q, req); |
3706 | } | 3677 | } |
3707 | 3678 | ||
3708 | EXPORT_SYMBOL(end_that_request_last); | ||
3709 | |||
3710 | static inline void __end_request(struct request *rq, int uptodate, | 3679 | static inline void __end_request(struct request *rq, int uptodate, |
3711 | unsigned int nr_bytes) | 3680 | unsigned int nr_bytes) |
3712 | { | 3681 | { |