diff options
author | Tejun Heo <htejun@gmail.com> | 2006-01-06 03:49:03 -0500 |
---|---|---|
committer | Jens Axboe <axboe@suse.de> | 2006-01-06 03:49:03 -0500 |
commit | 8ffdc6550c47f75ca4e6c9f30a2a89063e035cf2 (patch) | |
tree | a478b9acef5c66242a964154f7ad3a0ea750ef0f /include/linux | |
parent | 64100099ed22f71cce656c5c2caecf5c9cf255dc (diff) |
[BLOCK] add @uptodate to end_that_request_last() and @error to rq_end_io_fn()
add @uptodate argument to end_that_request_last() and @error
to rq_end_io_fn(). there's no generic way to pass error code
to request completion function, making generic error handling
of non-fs request difficult (rq->errors is driver-specific and
each driver uses it differently). this patch adds @uptodate
to end_that_request_last() and @error to rq_end_io_fn().
for fs requests, this doesn't really matter, so just using the
same uptodate argument used in the last call to
end_that_request_first() should suffice. imho, this can also
help the generic command-carrying request jens is working on.
Signed-off-by: tejun heo <htejun@gmail.com>
Signed-Off-By: Jens Axboe <axboe@suse.de>
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/blkdev.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index a18500d196e1..a0ce8c585165 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h | |||
@@ -102,7 +102,7 @@ void copy_io_context(struct io_context **pdst, struct io_context **psrc); | |||
102 | void swap_io_context(struct io_context **ioc1, struct io_context **ioc2); | 102 | void swap_io_context(struct io_context **ioc1, struct io_context **ioc2); |
103 | 103 | ||
104 | struct request; | 104 | struct request; |
105 | typedef void (rq_end_io_fn)(struct request *); | 105 | typedef void (rq_end_io_fn)(struct request *, int); |
106 | 106 | ||
107 | struct request_list { | 107 | struct request_list { |
108 | int count[2]; | 108 | int count[2]; |
@@ -560,7 +560,7 @@ extern void register_disk(struct gendisk *dev); | |||
560 | extern void generic_make_request(struct bio *bio); | 560 | extern void generic_make_request(struct bio *bio); |
561 | extern void blk_put_request(struct request *); | 561 | extern void blk_put_request(struct request *); |
562 | extern void __blk_put_request(request_queue_t *, struct request *); | 562 | extern void __blk_put_request(request_queue_t *, struct request *); |
563 | extern void blk_end_sync_rq(struct request *rq); | 563 | extern void blk_end_sync_rq(struct request *rq, int error); |
564 | extern void blk_attempt_remerge(request_queue_t *, struct request *); | 564 | extern void blk_attempt_remerge(request_queue_t *, struct request *); |
565 | extern struct request *blk_get_request(request_queue_t *, int, gfp_t); | 565 | extern struct request *blk_get_request(request_queue_t *, int, gfp_t); |
566 | extern void blk_insert_request(request_queue_t *, struct request *, int, void *); | 566 | extern void blk_insert_request(request_queue_t *, struct request *, int, void *); |
@@ -614,7 +614,7 @@ static inline void blk_run_address_space(struct address_space *mapping) | |||
614 | */ | 614 | */ |
615 | extern int end_that_request_first(struct request *, int, int); | 615 | extern int end_that_request_first(struct request *, int, int); |
616 | extern int end_that_request_chunk(struct request *, int, int); | 616 | extern int end_that_request_chunk(struct request *, int, int); |
617 | extern void end_that_request_last(struct request *); | 617 | extern void end_that_request_last(struct request *, int); |
618 | extern void end_request(struct request *req, int uptodate); | 618 | extern void end_request(struct request *req, int uptodate); |
619 | 619 | ||
620 | /* | 620 | /* |