patch-2.4.0-test6 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-test5/linux/drivers/block/raid1.c linux/drivers/block/raid1.c
@@ -274,7 +274,7 @@
 		}
 		memset(r1_bh, 0, sizeof(*r1_bh));
 		r1_bh->bh_req.b_page = page;
-		r1_bh->bh_req.b_data = (char *) page_address(page);
+		r1_bh->bh_req.b_data = page_address(page);
 		r1_bh->next_r1 = conf->freebuf;
 		conf->freebuf = r1_bh;
 		i++;
@@ -448,7 +448,7 @@
 {
 	int new_disk = conf->last_used;
 	const int sectors = bh->b_size >> 9;
-	const long this_sector = bh->b_blocknr * sectors;
+	const unsigned long this_sector = bh->b_rsector;
 	int disk = new_disk;
 	unsigned long new_distance;
 	unsigned long current_distance;
@@ -551,7 +551,6 @@
 	int disks = MD_SB_DISKS;
 	int i, sum_bhs = 0, sectors;
 	struct mirror_info *mirror;
-	request_queue_t *q;
 
 	if (!buffer_locked(bh))
 		BUG();
@@ -628,8 +627,7 @@
 	/*	bh_req->b_rsector = bh->n_rsector; */
 		bh_req->b_end_io = raid1_end_request;
 		bh_req->b_private = r1_bh;
-		q = blk_get_queue(bh_req->b_rdev);
-		generic_make_request (q, rw, bh_req);
+		generic_make_request (rw, bh_req);
 		return 0;
 	}
 
@@ -704,8 +702,7 @@
 	while(bh) {
 		struct buffer_head *bh2 = bh;
 		bh = bh->b_next;
-		q = blk_get_queue(bh2->b_rdev);
-		generic_make_request(q, rw, bh2);
+		generic_make_request(rw, bh2);
 	}
 	return (0);
 }
@@ -1124,7 +1121,6 @@
 	struct raid1_bh *r1_bh;
 	struct buffer_head *bh;
 	unsigned long flags;
-	request_queue_t *q;
 	mddev_t *mddev;
 	kdev_t dev;
 
@@ -1206,8 +1202,7 @@
 				while (mbh) {
 					struct buffer_head *bh1 = mbh;
 					mbh = mbh->b_next;
-					q = blk_get_queue(bh1->b_rdev);
-					generic_make_request(q, WRITE, bh1);
+					generic_make_request(WRITE, bh1);
 					md_sync_acct(bh1->b_rdev, bh1->b_size/512);
 				}
 			} else {
@@ -1220,8 +1215,7 @@
 					printk (REDIRECT_SECTOR,
 						partition_name(bh->b_dev), bh->b_blocknr);
 					bh->b_rdev = bh->b_dev;
-					q = blk_get_queue(bh->b_rdev);
-					generic_make_request (q, READ, bh);
+					generic_make_request(READ, bh);
 				}
 			}
 
@@ -1238,8 +1232,7 @@
 				printk (REDIRECT_SECTOR,
 					partition_name(bh->b_dev), bh->b_blocknr);
 				bh->b_rdev = bh->b_dev;
-				q = blk_get_queue(bh->b_rdev);
-				generic_make_request (q, r1_bh->cmd, bh);
+				generic_make_request (r1_bh->cmd, bh);
 			}
 			break;
 		}
@@ -1348,7 +1341,6 @@
 {
 	raid1_conf_t *conf = mddev_to_conf(mddev);
 	struct mirror_info *mirror;
-	request_queue_t *q;
 	struct raid1_bh *r1_bh;
 	struct buffer_head *bh;
 	int bsize;
@@ -1428,15 +1420,14 @@
 		BUG();
 	if (!bh->b_data)
 		BUG();
-	if (bh->b_data != (char *) page_address(bh->b_page))
+	if (bh->b_data != page_address(bh->b_page))
 		BUG();
 	bh->b_end_io = end_sync_read;
 	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);
+	generic_make_request(READ, bh);
 	md_sync_acct(bh->b_rdev, bh->b_size/512);
 
 	return (bsize >> 10);

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