libceph: make ceph_msg->bio_seg be unsigned
authorAlex Elder <elder@inktank.com>
Sat, 16 Feb 2013 04:10:17 +0000 (22:10 -0600)
committerSage Weil <sage@inktank.com>
Thu, 2 May 2013 04:14:23 +0000 (21:14 -0700)
The bio_seg field is used by the ceph messenger in iterating through
a bio.  It should never have a negative value, so make it an
unsigned.  (I contemplated making it unsigned short to match the
struct bio definition, but it offered no benefit.)

Change variables used to hold bio_seg values to all be unsigned as
well.  Change two variable names in init_bio_iter() to match the
convention used everywhere else.

Signed-off-by: Alex Elder <elder@inktank.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
include/linux/ceph/messenger.h
net/ceph/messenger.c

index 60903e0f665cb62ea9bf2db0cba04c984255e493..8297288a66e0ab77ed715357ef1b98b390b5cc2c 100644 (file)
@@ -86,7 +86,7 @@ struct ceph_msg {
 #ifdef CONFIG_BLOCK
        struct bio  *bio;               /* instead of pages/pagelist */
        struct bio  *bio_iter;          /* bio iterator */
-       int bio_seg;                    /* current bio segment */
+       unsigned int bio_seg;           /* current bio segment */
 #endif /* CONFIG_BLOCK */
        struct ceph_pagelist *trail;    /* the trailing part of the data */
        bool front_is_vmalloc;
index 2c0669fb54e33181f2834ea6725dd15291ec5a64..c06f94009d73c13862dbd329152320d45c48cd63 100644 (file)
@@ -697,18 +697,19 @@ static void con_out_kvec_add(struct ceph_connection *con,
 }
 
 #ifdef CONFIG_BLOCK
-static void init_bio_iter(struct bio *bio, struct bio **iter, int *seg)
+static void init_bio_iter(struct bio *bio, struct bio **bio_iter,
+                       unsigned int *bio_seg)
 {
        if (!bio) {
-               *iter = NULL;
-               *seg = 0;
+               *bio_iter = NULL;
+               *bio_seg = 0;
                return;
        }
-       *iter = bio;
-       *seg = bio->bi_idx;
+       *bio_iter = bio;
+       *bio_seg = (unsigned int) bio->bi_idx;
 }
 
-static void iter_bio_next(struct bio **bio_iter, int *seg)
+static void iter_bio_next(struct bio **bio_iter, unsigned int *seg)
 {
        if (*bio_iter == NULL)
                return;
@@ -1818,7 +1819,8 @@ static int read_partial_message_pages(struct ceph_connection *con,
 
 #ifdef CONFIG_BLOCK
 static int read_partial_message_bio(struct ceph_connection *con,
-                                   struct bio **bio_iter, int *bio_seg,
+                                   struct bio **bio_iter,
+                                   unsigned int *bio_seg,
                                    unsigned int data_len, bool do_datacrc)
 {
        struct bio_vec *bv = bio_iovec_idx(*bio_iter, *bio_seg);