CVSROOT:        /cvs/cluster
Module name:    cluster
Changes by:     [EMAIL PROTECTED]       2008-01-28 06:13:15

Modified files:
        gnbd-kernel/src: gnbd.c 

Log message:
        Update gnbd kernel modules to build with 2.6.24

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gnbd-kernel/src/gnbd.c.diff?cvsroot=cluster&r1=1.20&r2=1.21

--- cluster/gnbd-kernel/src/gnbd.c      2007/06/19 22:31:56     1.20
+++ cluster/gnbd-kernel/src/gnbd.c      2008/01/28 06:13:15     1.21
@@ -168,7 +168,7 @@
        
        if (down_trylock(&dev->do_it_lock))
                return -EBUSY;
-       res = sscanf(buf, "%Lu\n", &size);
+       res = sscanf(buf, "%Lu\n", (unsigned long long int *)&size);
        if (res != 1){
                up(&dev->do_it_lock);
                return -EINVAL;
@@ -267,7 +267,7 @@
 static void gnbd_end_request(struct request *req)
 {
        int uptodate = (req->errors == 0) ? 1 : 0;
-       request_queue_t *q = req->q;
+       struct request_queue *q = req->q;
        unsigned long flags;
 
        dprintk(DBG_BLKDEV, "%s: request %p: %s\n", req->rq_disk->disk_name,
@@ -369,7 +369,7 @@
 int __gnbd_send_req(struct gnbd_device *dev, struct socket *sock,
                struct request *req, int can_signal)
 {
-       int result, i, flags;
+       int result, flags;
        struct gnbd_request request;
        unsigned long size = req->nr_sectors << 9;
 
@@ -403,28 +403,26 @@
        }
 
        if (gnbd_cmd(req) == GNBD_CMD_WRITE) {
-               struct bio *bio;
+               struct req_iterator iter;
+               struct bio_vec *bvec;
                /*
                 * we are really probing at internals to determine
                 * whether to set MSG_MORE or not...
                 */
-               rq_for_each_bio(bio, req) {
-                       struct bio_vec *bvec;
-                       bio_for_each_segment(bvec, bio, i) {
-                               flags = 0;
-                               if ((i < (bio->bi_vcnt - 1)) || bio->bi_next)
-                                       flags = MSG_MORE;
-                               dprintk(DBG_TX, "%s: request %p: sending %d 
bytes data\n",
-                                               dev->disk->disk_name, req,
-                                               bvec->bv_len);
-                               result = sock_send_bvec(sock, bvec, flags,
-                                                       can_signal);
-                               if (result < 0) {
-                                       printk(KERN_ERR "%s: Send data failed 
(result %d)\n",
-                                                       dev->disk->disk_name,
-                                                       result);
-                                       goto error_out;
-                               }
+               rq_for_each_segment(bvec, req, iter) {
+                       flags = 0;
+                       if (!rq_iter_last(req, iter))
+                               flags = MSG_MORE;
+                       dprintk(DBG_TX, "%s: request %p: sending %d bytes 
data\n",
+                                       dev->disk->disk_name, req,
+                                       bvec->bv_len);
+                       result = sock_send_bvec(sock, bvec, flags,
+                                               can_signal);
+                       if (result < 0) {
+                               printk(KERN_ERR "%s: Send data failed (result 
%d)\n",
+                                               dev->disk->disk_name,
+                                               result);
+                               goto error_out;
                        }
                }
        }
@@ -464,21 +462,19 @@
 int gnbd_recv_req(struct gnbd_device *dev, struct request *req)
 {
        int result;
-       int i;
-       struct bio *bio;
-       rq_for_each_bio(bio, req) {
-               struct bio_vec *bvec;
-               bio_for_each_segment(bvec, bio, i) {
-                       result = sock_recv_bvec(dev->sock, bvec);
-                       if (result < 0) {
-                               printk(KERN_ERR "%s: Receive data failed 
(result %d)\n",
-                                               dev->disk->disk_name,
-                                               result);
-                               return result;
-                       }
-                       dprintk(DBG_RX, "%s: request %p: got %d bytes data\n",
-                                       dev->disk->disk_name, req, 
bvec->bv_len);
+       struct bio_vec *bvec;
+       struct req_iterator iter;
+
+       rq_for_each_segment(bvec, req, iter) {
+               result = sock_recv_bvec(dev->sock, bvec);
+               if (result < 0) {
+                       printk(KERN_ERR "%s: Receive data failed (result %d)\n",
+                                       dev->disk->disk_name,
+                                       result);
+                       return result;
                }
+               dprintk(DBG_RX, "%s: request %p: got %d bytes data\n",
+                               dev->disk->disk_name, req, bvec->bv_len);
        }
        return 0;
 }
@@ -565,7 +561,7 @@
  *   { printk( "Warning: Ignoring result!\n"); gnbd_end_request( req ); }
  */
 
-static void do_gnbd_request(request_queue_t * q)
+static void do_gnbd_request(struct request_queue *q)
 {
        int err;
        struct request *req;

Reply via email to