--- drivers/block/drbd/drbd_actlog.c.orig 2008-07-16 19:27:45.468002575 +0200 +++ drivers/block/drbd/drbd_actlog.c 2008-07-16 19:28:00.224002447 +0200 @@ -51,7 +51,7 @@ if (FAULT_ACTIVE((rw & WRITE)? DRBD_FAULT_MD_WR:DRBD_FAULT_MD_RD)) { bio->bi_rw |= rw; - bio_endio(bio,bio->bi_size,-EIO); + bio_endio(bio,-EIO); } else { #ifdef BIO_RW_SYNC --- drivers/block/drbd/drbd_bitmap.c.orig 2008-07-16 19:18:07.268003998 +0200 +++ drivers/block/drbd/drbd_bitmap.c 2008-07-16 19:18:42.784002692 +0200 @@ -657,7 +657,7 @@ if (FAULT_ACTIVE((rw&WRITE)?DRBD_FAULT_MD_WR:DRBD_FAULT_MD_RD)) { bio->bi_rw |= rw; - bio_endio(bio,bio->bi_size,-EIO); + bio_endio(bio,-EIO); } else submit_bio(rw, bio); --- drivers/block/drbd/drbd_compat_wrappers.h.orig 2008-07-16 19:07:15.780004208 +0200 +++ drivers/block/drbd/drbd_compat_wrappers.h 2008-07-16 19:16:57.424002445 +0200 @@ -127,12 +127,12 @@ if (!bio->bi_bdev) { printk(KERN_ERR "drbd_generic_make_request: bio->bi_bdev == NULL\n"); dump_stack(); - bio_endio(bio, bio->bi_size, -ENODEV); + bio_endio(bio, -ENODEV); return; } if (FAULT_ACTIVE(fault_type)) - bio_endio(bio,bio->bi_size,-EIO); + bio_endio(bio,-EIO); else generic_make_request(bio); } --- drivers/block/drbd/drbd_main.c.orig 2008-07-16 19:28:53.648002541 +0200 +++ drivers/block/drbd/drbd_main.c 2008-07-16 19:32:58.260002562 +0200 @@ -2125,13 +2125,13 @@ // caches drbd_request_cache = kmem_cache_create( "drbd_req_cache", sizeof(drbd_request_t), - 0, 0, NULL, NULL); + 0, 0, NULL); if (drbd_request_cache == NULL) goto Enomem; drbd_ee_cache = kmem_cache_create( "drbd_ee_cache", sizeof(struct Tl_epoch_entry), - 0, 0, NULL, NULL); + 0, 0, NULL); if (drbd_ee_cache == NULL) goto Enomem; @@ -2268,8 +2268,7 @@ kfree(minor_table); - if (unregister_blkdev(MAJOR_NR, DEVICE_NAME) != 0) - printk(KERN_ERR DEVICE_NAME": unregister of device failed\n"); + unregister_blkdev(MAJOR_NR, DEVICE_NAME); printk(KERN_INFO DEVICE_NAME": module cleanup done.\n"); } --- drivers/block/drbd/drbd_receiver.c.orig 2008-07-16 19:20:22.412002450 +0200 +++ drivers/block/drbd/drbd_receiver.c 2008-07-16 19:22:10.344002462 +0200 @@ -2971,7 +2971,7 @@ goto fail; } - sg.page = virt_to_page(peers_ch); + sg.page_link = virt_to_page(peers_ch); sg.offset = offset_in_page(peers_ch); sg.length = p.length; @@ -3016,7 +3016,7 @@ goto fail; } - sg.page = virt_to_page(my_challenge); + sg.page_link = virt_to_page(my_challenge); sg.offset = offset_in_page(my_challenge); sg.length = CHALLENGE_LEN; --- drivers/block/drbd/drbd_req.c.orig 2008-07-16 19:23:42.008003739 +0200 +++ drivers/block/drbd/drbd_req.c 2008-07-16 19:25:04.628002541 +0200 @@ -240,7 +240,7 @@ static void _complete_master_bio(drbd_dev *mdev, drbd_request_t *req, int error) { dump_bio(mdev,req->master_bio,1); - bio_endio(req->master_bio, req->master_bio->bi_size, error); + bio_endio(req->master_bio, error); req->master_bio = NULL; dec_ap_bio(mdev); } @@ -789,7 +789,7 @@ /* only pass the error to the upper layers. * if user cannot handle io errors, thats not our business. */ ERR("could not kmalloc() req\n"); - bio_endio(bio, bio->bi_size, -ENOMEM); + bio_endio(bio, -ENOMEM); return 0; } @@ -985,7 +985,7 @@ if (remote) dec_ap_pending(mdev); dump_bio(mdev,req->master_bio,1); /* THINK: do we want to fail it (-EIO), or pretend success? */ - bio_endio(req->master_bio, req->master_bio->bi_size, 0); + bio_endio(req->master_bio, 0); req->master_bio = NULL; dec_ap_bio(mdev); drbd_req_free(req); @@ -1013,7 +1013,7 @@ if (FAULT_ACTIVE(rw==WRITE ? DRBD_FAULT_DT_WR : ( rw==READ ? DRBD_FAULT_DT_RD : DRBD_FAULT_DT_RA ) )) - bio_endio(req->private_bio, req->private_bio->bi_size, -EIO); + bio_endio(req->private_bio, -EIO); else generic_make_request(req->private_bio); } @@ -1026,7 +1026,7 @@ fail_and_free_req: if (b) kfree(b); - bio_endio(bio, bio->bi_size, err); + bio_endio(bio, err); drbd_req_free(req); return 0; } @@ -1081,13 +1081,13 @@ struct Drbd_Conf* mdev = (drbd_dev*) q->queuedata; if (drbd_fail_request_early(mdev, bio_data_dir(bio) & WRITE)) { - bio_endio(bio, bio->bi_size, -EPERM); + bio_endio(bio, -EPERM); return 0; } /* Currently our BARRIER code is disabled. */ if(unlikely(bio_barrier(bio))) { - bio_endio(bio, bio->bi_size, -EOPNOTSUPP); + bio_endio(bio, -EOPNOTSUPP); return 0; }