patch-2.4.0-test5 linux/drivers/block/raid5.c
Next file: linux/drivers/block/xor.c
Previous file: linux/drivers/block/raid1.c
Back to the patch index
Back to the overall index
- Lines: 67
- Date:
Wed Jul 26 19:47:48 2000
- Orig file:
v2.4.0-test4/linux/drivers/block/raid5.c
- Orig date:
Mon Jul 10 16:47:22 2000
diff -u --recursive --new-file v2.4.0-test4/linux/drivers/block/raid5.c linux/drivers/block/raid5.c
@@ -264,7 +264,7 @@
}
bh->b_size = b_size;
atomic_set(&bh->b_count, 0);
- set_bh_page(bh, page, 0);
+ bh->b_page = page;
put_free_buffer(sh, bh);
}
return 0;
@@ -597,7 +597,7 @@
static void raid5_end_request (struct buffer_head * bh, int uptodate)
{
- struct stripe_head *sh = bh->b_dev_id;
+ struct stripe_head *sh = bh->b_private;
raid5_conf_t *conf = sh->raid_conf;
int disks = conf->raid_disks, i;
unsigned long flags;
@@ -1263,7 +1263,7 @@
bh->b_dev = bh->b_rdev = conf->disks[i].dev;
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);
atomic_dec(&sh->bh_old[i]->b_count);
}
PRINTK("handle_stripe_sync() %lu, phase READ_OLD, pending %d buffers\n", sh->sector, md_atomic_read(&sh->nr_pending));
@@ -1293,7 +1293,7 @@
bh->b_dev = bh->b_rdev = conf->spare->dev;
q = blk_get_queue(bh->b_rdev);
generic_make_request(q, WRITERAW, bh);
- drive_stat_acct(bh->b_rdev, WRITE, -bh->b_size/512, 0);
+ 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));
}
@@ -1320,7 +1320,7 @@
bh->b_dev = bh->b_rdev = conf->disks[pd_idx].dev;
q = blk_get_queue(bh->b_rdev);
generic_make_request(q, WRITERAW, bh);
- drive_stat_acct(bh->b_rdev, WRITE, -bh->b_size/512, 0);
+ 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));
@@ -1488,7 +1488,7 @@
}
-static int raid5_make_request (request_queue_t *q, mddev_t *mddev, int rw, struct buffer_head * bh)
+static int raid5_make_request (mddev_t *mddev, int rw, struct buffer_head * bh)
{
raid5_conf_t *conf = (raid5_conf_t *) mddev->private;
const unsigned int raid_disks = conf->raid_disks;
@@ -2391,6 +2391,12 @@
err = register_md_personality (RAID5, &raid5_personality);
if (err)
return err;
+
+ /*
+ * pick a XOR routine, runtime.
+ */
+ calibrate_xor_block();
+
return 0;
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)