patch-2.4.0-test5 linux/drivers/block/raid1.c

Next file: linux/drivers/block/raid5.c
Previous file: linux/drivers/block/raid0.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.4.0-test4/linux/drivers/block/raid1.c linux/drivers/block/raid1.c
@@ -75,7 +75,7 @@
 		md_spin_unlock_irq(&conf->device_lock);
 		if (cnt == 0)
 			break;
-		t = (struct buffer_head *)kmalloc(sizeof(struct buffer_head), GFP_KERNEL);
+		t = (struct buffer_head *)kmalloc(sizeof(struct buffer_head), GFP_BUFFER);
 		if (t) {
 			memset(t, 0, sizeof(*t));
 			t->b_next = bh;
@@ -165,7 +165,7 @@
 		if (r1_bh)
 			return r1_bh;
 		r1_bh = (struct raid1_bh *) kmalloc(sizeof(struct raid1_bh),
-					GFP_KERNEL);
+					GFP_BUFFER);
 		if (r1_bh) {
 			memset(r1_bh, 0, sizeof(*r1_bh));
 			return r1_bh;
@@ -379,7 +379,7 @@
 }
 void raid1_end_request (struct buffer_head *bh, int uptodate)
 {
-	struct raid1_bh * r1_bh = (struct raid1_bh *)(bh->b_dev_id);
+	struct raid1_bh * r1_bh = (struct raid1_bh *)(bh->b_private);
 
 	/*
 	 * this branch is our 'one mirror IO has finished' event handler:
@@ -542,8 +542,8 @@
 	return new_disk;
 }
 
-static int raid1_make_request (request_queue_t *q, mddev_t *mddev, int rw,
-						 struct buffer_head * bh)
+static int raid1_make_request (mddev_t *mddev, int rw,
+			       struct buffer_head * bh)
 {
 	raid1_conf_t *conf = mddev_to_conf(mddev);
 	struct buffer_head *bh_req, *bhl;
@@ -551,6 +551,7 @@
 	int disks = MD_SB_DISKS;
 	int i, sum_bhs = 0, sectors;
 	struct mirror_info *mirror;
+	request_queue_t *q;
 
 	if (!buffer_locked(bh))
 		BUG();
@@ -626,7 +627,7 @@
 		bh_req->b_rdev = mirror->dev;
 	/*	bh_req->b_rsector = bh->n_rsector; */
 		bh_req->b_end_io = raid1_end_request;
-		bh_req->b_dev_id = r1_bh;
+		bh_req->b_private = r1_bh;
 		q = blk_get_queue(bh_req->b_rdev);
 		generic_make_request (q, rw, bh_req);
 		return 0;
@@ -679,7 +680,7 @@
  		mbh->b_data	  = bh->b_data;
  		mbh->b_list       = BUF_LOCKED;
  		mbh->b_end_io     = raid1_end_request;
- 		mbh->b_dev_id     = r1_bh;
+ 		mbh->b_private    = r1_bh;
 
 		mbh->b_next = r1_bh->mirror_bh_list;
 		r1_bh->mirror_bh_list = mbh;
@@ -1192,7 +1193,7 @@
 					mbh->b_data	  = bh->b_data;
 					mbh->b_list       = BUF_LOCKED;
 					mbh->b_end_io     = end_sync_write;
-					mbh->b_dev_id     = r1_bh;
+					mbh->b_private    = r1_bh;
 
 					mbh->b_next = r1_bh->mirror_bh_list;
 					r1_bh->mirror_bh_list = mbh;
@@ -1207,7 +1208,7 @@
 					mbh = mbh->b_next;
 					q = blk_get_queue(bh1->b_rdev);
 					generic_make_request(q, WRITE, bh1);
-					drive_stat_acct(bh1->b_rdev, WRITE, -bh1->b_size/512, 0);
+					md_sync_acct(bh1->b_rdev, bh1->b_size/512);
 				}
 			} else {
 				dev = bh->b_dev;
@@ -1430,13 +1431,13 @@
 	if (bh->b_data != (char *) page_address(bh->b_page))
 		BUG();
 	bh->b_end_io = end_sync_read;
-	bh->b_dev_id = (void *) r1_bh;
+	bh->b_private = r1_bh;
 	bh->b_rsector = block_nr<<1;
 	init_waitqueue_head(&bh->b_wait);
 
 	q = blk_get_queue(bh->b_rdev);
 	generic_make_request(q, READ, bh);
-	drive_stat_acct(bh->b_rdev, READ, -bh->b_size/512, 0);
+	md_sync_acct(bh->b_rdev, bh->b_size/512);
 
 	return (bsize >> 10);
 
@@ -1448,7 +1449,7 @@
 
 static void end_sync_read(struct buffer_head *bh, int uptodate)
 {
-	struct raid1_bh * r1_bh = (struct raid1_bh *)(bh->b_dev_id);
+	struct raid1_bh * r1_bh = (struct raid1_bh *)(bh->b_private);
 
 	/* we have read a block, now it needs to be re-written,
 	 * or re-read if the read failed.
@@ -1463,7 +1464,7 @@
 
 static void end_sync_write(struct buffer_head *bh, int uptodate)
 {
-	struct raid1_bh * r1_bh = (struct raid1_bh *)(bh->b_dev_id);
+ 	struct raid1_bh * r1_bh = (struct raid1_bh *)(bh->b_private);
 	
 	if (!uptodate)
  		md_error (mddev_to_kdev(r1_bh->mddev), bh->b_dev);

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)