Commit 22b13210 authored by Jens Axboe's avatar Jens Axboe

block: new end request handling interface should take unsigned byte counts

No point in passing signed integers as the byte count, they can never
be negative.
Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
parent 640e248e
...@@ -1846,8 +1846,9 @@ EXPORT_SYMBOL(end_request); ...@@ -1846,8 +1846,9 @@ EXPORT_SYMBOL(end_request);
* 0 - we are done with this request * 0 - we are done with this request
* 1 - this request is not freed yet, it still has pending buffers. * 1 - this request is not freed yet, it still has pending buffers.
**/ **/
static int blk_end_io(struct request *rq, int error, int nr_bytes, static int blk_end_io(struct request *rq, int error, unsigned int nr_bytes,
int bidi_bytes, int (drv_callback)(struct request *)) unsigned int bidi_bytes,
int (drv_callback)(struct request *))
{ {
struct request_queue *q = rq->q; struct request_queue *q = rq->q;
unsigned long flags = 0UL; unsigned long flags = 0UL;
...@@ -1889,7 +1890,7 @@ static int blk_end_io(struct request *rq, int error, int nr_bytes, ...@@ -1889,7 +1890,7 @@ static int blk_end_io(struct request *rq, int error, int nr_bytes,
* 0 - we are done with this request * 0 - we are done with this request
* 1 - still buffers pending for this request * 1 - still buffers pending for this request
**/ **/
int blk_end_request(struct request *rq, int error, int nr_bytes) int blk_end_request(struct request *rq, int error, unsigned int nr_bytes)
{ {
return blk_end_io(rq, error, nr_bytes, 0, NULL); return blk_end_io(rq, error, nr_bytes, 0, NULL);
} }
...@@ -1908,7 +1909,7 @@ EXPORT_SYMBOL_GPL(blk_end_request); ...@@ -1908,7 +1909,7 @@ EXPORT_SYMBOL_GPL(blk_end_request);
* 0 - we are done with this request * 0 - we are done with this request
* 1 - still buffers pending for this request * 1 - still buffers pending for this request
**/ **/
int __blk_end_request(struct request *rq, int error, int nr_bytes) int __blk_end_request(struct request *rq, int error, unsigned int nr_bytes)
{ {
if (blk_fs_request(rq) || blk_pc_request(rq)) { if (blk_fs_request(rq) || blk_pc_request(rq)) {
if (__end_that_request_first(rq, error, nr_bytes)) if (__end_that_request_first(rq, error, nr_bytes))
...@@ -1937,8 +1938,8 @@ EXPORT_SYMBOL_GPL(__blk_end_request); ...@@ -1937,8 +1938,8 @@ EXPORT_SYMBOL_GPL(__blk_end_request);
* 0 - we are done with this request * 0 - we are done with this request
* 1 - still buffers pending for this request * 1 - still buffers pending for this request
**/ **/
int blk_end_bidi_request(struct request *rq, int error, int nr_bytes, int blk_end_bidi_request(struct request *rq, int error, unsigned int nr_bytes,
int bidi_bytes) unsigned int bidi_bytes)
{ {
return blk_end_io(rq, error, nr_bytes, bidi_bytes, NULL); return blk_end_io(rq, error, nr_bytes, bidi_bytes, NULL);
} }
...@@ -1969,7 +1970,8 @@ EXPORT_SYMBOL_GPL(blk_end_bidi_request); ...@@ -1969,7 +1970,8 @@ EXPORT_SYMBOL_GPL(blk_end_bidi_request);
* this request still has pending buffers or * this request still has pending buffers or
* the driver doesn't want to finish this request yet. * the driver doesn't want to finish this request yet.
**/ **/
int blk_end_request_callback(struct request *rq, int error, int nr_bytes, int blk_end_request_callback(struct request *rq, int error,
unsigned int nr_bytes,
int (drv_callback)(struct request *)) int (drv_callback)(struct request *))
{ {
return blk_end_io(rq, error, nr_bytes, 0, drv_callback); return blk_end_io(rq, error, nr_bytes, 0, drv_callback);
......
...@@ -655,14 +655,17 @@ static inline void blk_run_address_space(struct address_space *mapping) ...@@ -655,14 +655,17 @@ static inline void blk_run_address_space(struct address_space *mapping)
* blk_end_request() for parts of the original function. * blk_end_request() for parts of the original function.
* This prevents code duplication in drivers. * This prevents code duplication in drivers.
*/ */
extern int blk_end_request(struct request *rq, int error, int nr_bytes); extern int blk_end_request(struct request *rq, int error,
extern int __blk_end_request(struct request *rq, int error, int nr_bytes); unsigned int nr_bytes);
extern int blk_end_bidi_request(struct request *rq, int error, int nr_bytes, extern int __blk_end_request(struct request *rq, int error,
int bidi_bytes); unsigned int nr_bytes);
extern int blk_end_bidi_request(struct request *rq, int error,
unsigned int nr_bytes, unsigned int bidi_bytes);
extern void end_request(struct request *, int); extern void end_request(struct request *, int);
extern void end_queued_request(struct request *, int); extern void end_queued_request(struct request *, int);
extern void end_dequeued_request(struct request *, int); extern void end_dequeued_request(struct request *, int);
extern int blk_end_request_callback(struct request *rq, int error, int nr_bytes, extern int blk_end_request_callback(struct request *rq, int error,
unsigned int nr_bytes,
int (drv_callback)(struct request *)); int (drv_callback)(struct request *));
extern void blk_complete_request(struct request *); extern void blk_complete_request(struct request *);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment