patch-2.4.0-test6 linux/drivers/block/raid5.c

Next file: linux/drivers/block/xd.h
Previous file: linux/drivers/block/raid1.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.4.0-test5/linux/drivers/block/raid5.c linux/drivers/block/raid5.c
@@ -257,7 +257,7 @@
 		memset(bh, 0, sizeof (struct buffer_head));
 		init_waitqueue_head(&bh->b_wait);
 		page = alloc_page(priority);
-		bh->b_data = (char *) page_address(page);
+		bh->b_data = page_address(page);
 		if (!bh->b_data) {
 			kfree(bh);
 			return 1;
@@ -631,7 +631,7 @@
 	raid5_conf_t *conf = sh->raid_conf;
 	char *b_data;
 	struct page *b_page;
-	int block = sh->sector / (sh->size >> 9);
+	unsigned long block = sh->sector / (sh->size >> 9);
 
 	b_data = bh->b_data;
 	b_page = bh->b_page;
@@ -715,12 +715,13 @@
  * Input: a 'big' sector number,
  * Output: index of the data and parity disk, and the sector # in them.
  */
-static unsigned long raid5_compute_sector(int r_sector, unsigned int raid_disks,
+static unsigned long raid5_compute_sector(unsigned long r_sector, unsigned int raid_disks,
 			unsigned int data_disks, unsigned int * dd_idx,
 			unsigned int * pd_idx, raid5_conf_t *conf)
 {
-	unsigned int stripe;
-	int chunk_number, chunk_offset;
+	unsigned long stripe;
+	unsigned long chunk_number;
+	unsigned int chunk_offset;
 	unsigned long new_sector;
 	int sectors_per_chunk = conf->chunk_size >> 9;
 
@@ -1016,7 +1017,6 @@
 	int nr_failed_other, int nr_cache_overwrite, int nr_failed_overwrite)
 {
 	int i, allclean;
-	request_queue_t *q;
 	unsigned int block;
 	struct buffer_head *bh;
 	int method1 = INT_MAX, method2 = INT_MAX;
@@ -1087,21 +1087,18 @@
 					PRINTK("writing spare %d\n", i);
 					atomic_inc(&sh->nr_pending);
 					bh->b_dev = bh->b_rdev = conf->spare->dev;
-					q = blk_get_queue(bh->b_rdev);
-					generic_make_request(q, WRITERAW, bh);
+					generic_make_request(WRITERAW, bh);
 				} else {
 #if 0
 					atomic_inc(&sh->nr_pending);
 					bh->b_dev = bh->b_rdev = conf->disks[i].dev;
-					q = blk_get_queue(bh->b_rdev);
-					generic_make_request(q, WRITERAW, bh);
+					generic_make_request(WRITERAW, bh);
 #else
 					if (!allclean || (i==sh->pd_idx)) {
 						PRINTK("writing dirty %d\n", i);
 						atomic_inc(&sh->nr_pending);
 						bh->b_dev = bh->b_rdev = conf->disks[i].dev;
-						q = blk_get_queue(bh->b_rdev);
-						generic_make_request(q, WRITERAW, bh);
+						generic_make_request(WRITERAW, bh);
 					} else {
 						PRINTK("not writing clean %d\n", i);
 						raid5_end_request(bh, 1);
@@ -1146,8 +1143,7 @@
 		lock_get_bh(sh->bh_old[i]);
 		atomic_inc(&sh->nr_pending);
 		sh->bh_old[i]->b_dev = sh->bh_old[i]->b_rdev = conf->disks[i].dev;
-		q = blk_get_queue(sh->bh_old[i]->b_rdev);
-		generic_make_request(q, READ, sh->bh_old[i]);
+		generic_make_request(READ, sh->bh_old[i]);
 		atomic_dec(&sh->bh_old[i]->b_count);
 	}
 	PRINTK("handle_stripe() %lu, reading %d old buffers\n", sh->sector, md_atomic_read(&sh->nr_pending));
@@ -1162,7 +1158,6 @@
 	int nr_failed_other, int nr_cache_overwrite, int nr_failed_overwrite)
 {
 	int i;
-	request_queue_t *q;
 	int method1 = INT_MAX;
 
 	method1 = nr_read - nr_cache_overwrite;
@@ -1193,8 +1188,7 @@
 			lock_get_bh(sh->bh_old[i]);
 			atomic_inc(&sh->nr_pending);
 			sh->bh_old[i]->b_dev = sh->bh_old[i]->b_rdev = conf->disks[i].dev;
-			q = blk_get_queue(sh->bh_old[i]->b_rdev);
-			generic_make_request(q, READ, sh->bh_old[i]);
+			generic_make_request(READ, sh->bh_old[i]);
 			atomic_dec(&sh->bh_old[i]->b_count);
 		}
 		PRINTK("handle_stripe() %lu, phase READ_OLD, pending %d buffers\n", sh->sector, md_atomic_read(&sh->nr_pending));
@@ -1223,8 +1217,7 @@
 		lock_get_bh(sh->bh_req[i]);
 		atomic_inc(&sh->nr_pending);
 		sh->bh_req[i]->b_dev = sh->bh_req[i]->b_rdev = conf->disks[i].dev;
-		q = blk_get_queue(sh->bh_req[i]->b_rdev);
-		generic_make_request(q, READ, sh->bh_req[i]);
+		generic_make_request(READ, sh->bh_req[i]);
 		atomic_dec(&sh->bh_req[i]->b_count);
 	}
 	PRINTK("handle_stripe() %lu, phase READ, pending %d\n", sh->sector, md_atomic_read(&sh->nr_pending));
@@ -1238,7 +1231,6 @@
 	int parity, int parity_failed, int nr_cache, int nr_cache_other,
 	int nr_failed_other, int nr_cache_overwrite, int nr_failed_overwrite)
 {
-	request_queue_t *q;
 	struct buffer_head *bh;
 	int i, pd_idx;
 	
@@ -1261,8 +1253,7 @@
 			lock_get_bh(bh);
 			atomic_inc(&sh->nr_pending);
 			bh->b_dev = bh->b_rdev = conf->disks[i].dev;
-			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);
 			atomic_dec(&sh->bh_old[i]->b_count);
 		}
@@ -1291,8 +1282,7 @@
 				atomic_inc(&sh->nr_pending);
 				lock_get_bh(bh);
 				bh->b_dev = bh->b_rdev = conf->spare->dev;
-				q = blk_get_queue(bh->b_rdev);
-				generic_make_request(q, WRITERAW, bh);
+				generic_make_request(WRITERAW, bh);
 				md_sync_acct(bh->b_rdev, bh->b_size/512);
 				atomic_dec(&bh->b_count);
 		PRINTK("handle_stripe_sync() %lu, phase WRITE, pending %d buffers\n", sh->sector, md_atomic_read(&sh->nr_pending));
@@ -1318,8 +1308,7 @@
 		lock_get_bh(bh);
 		atomic_inc(&sh->nr_pending);
 		bh->b_dev = bh->b_rdev = conf->disks[pd_idx].dev;
-		q = blk_get_queue(bh->b_rdev);
-		generic_make_request(q, WRITERAW, bh);
+		generic_make_request(WRITERAW, bh);
 		md_sync_acct(bh->b_rdev, bh->b_size/512);
 		atomic_dec(&bh->b_count);
 		PRINTK("handle_stripe_sync() %lu phase WRITE, pending %d buffers\n",
@@ -1671,7 +1660,7 @@
 	tmp = kmalloc(sizeof(*tmp), GFP_KERNEL);
 	tmp->b_size = 4096;
 	tmp->b_page = alloc_page(GFP_KERNEL);
-	tmp->b_data = (char *)page_address(tmp->b_page);
+	tmp->b_data = page_address(tmp->b_page);
 	if (!tmp->b_data)
 		goto out;
 	md_clear_page(tmp->b_data);

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