block: new end request handling interface should take unsigned byte counts
authorJens Axboe <jens.axboe@oracle.com>
Thu, 31 Jan 2008 11:36:19 +0000 (12:36 +0100)
committerJens Axboe <jens.axboe@oracle.com>
Fri, 1 Feb 2008 08:26:33 +0000 (09:26 +0100)
No point in passing signed integers as the byte count, they can never
be negative.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
block/blk-core.c
include/linux/blkdev.h

index 8ff9944..55cf293 100644 (file)
@@ -1846,8 +1846,9 @@ EXPORT_SYMBOL(end_request);
  *     0 - we are done with this request
  *     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,
-                     int bidi_bytes, int (drv_callback)(struct request *))
+static int blk_end_io(struct request *rq, int error, unsigned int nr_bytes,
+                     unsigned int bidi_bytes,
+                     int (drv_callback)(struct request *))
 {
        struct request_queue *q = rq->q;
        unsigned long flags = 0UL;
@@ -1889,7 +1890,7 @@ static int blk_end_io(struct request *rq, int error, int nr_bytes,
  *     0 - we are done with 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);
 }
@@ -1908,7 +1909,7 @@ EXPORT_SYMBOL_GPL(blk_end_request);
  *     0 - we are done with 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 (__end_that_request_first(rq, error, nr_bytes))
@@ -1937,8 +1938,8 @@ EXPORT_SYMBOL_GPL(__blk_end_request);
  *     0 - we are done with this request
  *     1 - still buffers pending for this request
  **/
-int blk_end_bidi_request(struct request *rq, int error, int nr_bytes,
-                        int bidi_bytes)
+int blk_end_bidi_request(struct request *rq, int error, unsigned int nr_bytes,
+                        unsigned int bidi_bytes)
 {
        return blk_end_io(rq, error, nr_bytes, bidi_bytes, NULL);
 }
@@ -1969,7 +1970,8 @@ EXPORT_SYMBOL_GPL(blk_end_bidi_request);
  *         this request still has pending buffers or
  *         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 *))
 {
        return blk_end_io(rq, error, nr_bytes, 0, drv_callback);
index e18d419..cf17039 100644 (file)
@@ -655,15 +655,18 @@ static inline void blk_run_address_space(struct address_space *mapping)
  * blk_end_request() for parts of the original function.
  * 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, int nr_bytes);
-extern int blk_end_bidi_request(struct request *rq, int error, int nr_bytes,
-                               int bidi_bytes);
+extern int blk_end_request(struct request *rq, int error,
+                               unsigned int nr_bytes);
+extern int __blk_end_request(struct request *rq, int error,
+                               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_queued_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,
-                                   int (drv_callback)(struct request *));
+extern int blk_end_request_callback(struct request *rq, int error,
+                               unsigned int nr_bytes,
+                               int (drv_callback)(struct request *));
 extern void blk_complete_request(struct request *);
 
 /*