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
- Lines: 153
- Date:
Wed Aug 9 14:20:18 2000
- Orig file:
v2.4.0-test5/linux/drivers/block/raid5.c
- Orig date:
Thu Jul 27 17:38:00 2000
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)