From cd7e03498198afe61e30b41c8a63f70342419c37 Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Mon, 12 Dec 2005 02:39:17 -0800 Subject: [PATCH] --- yaml --- r: 15046 b: refs/heads/master c: 5036805be7b815eb18dcce489d974f3aee4f3841 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/md/raid5.c | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 14790009f1fe..2f765a88b698 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 3795bb0fc52fe2af2749f3ad2185cb9c90871ef8 +refs/heads/master: 5036805be7b815eb18dcce489d974f3aee4f3841 diff --git a/trunk/drivers/md/raid5.c b/trunk/drivers/md/raid5.c index 36d5f8ac8265..fafc4bc045f7 100644 --- a/trunk/drivers/md/raid5.c +++ b/trunk/drivers/md/raid5.c @@ -98,7 +98,7 @@ static inline void __release_stripe(raid5_conf_t *conf, struct stripe_head *sh) list_add_tail(&sh->lru, &conf->inactive_list); atomic_dec(&conf->active_stripes); if (!conf->inactive_blocked || - atomic_read(&conf->active_stripes) < (NR_STRIPES*3/4)) + atomic_read(&conf->active_stripes) < (conf->max_nr_stripes*3/4)) wake_up(&conf->wait_for_stripe); } } @@ -264,7 +264,8 @@ static struct stripe_head *get_active_stripe(raid5_conf_t *conf, sector_t sector conf->inactive_blocked = 1; wait_event_lock_irq(conf->wait_for_stripe, !list_empty(&conf->inactive_list) && - (atomic_read(&conf->active_stripes) < (NR_STRIPES *3/4) + (atomic_read(&conf->active_stripes) + < (conf->max_nr_stripes *3/4) || !conf->inactive_blocked), conf->device_lock, unplug_slaves(conf->mddev); @@ -1917,7 +1918,7 @@ static int run(mddev_t *mddev) goto abort; } } -memory = conf->max_nr_stripes * (sizeof(struct stripe_head) + + memory = conf->max_nr_stripes * (sizeof(struct stripe_head) + conf->raid_disks * ((sizeof(struct bio) + PAGE_SIZE))) / 1024; if (grow_stripes(conf, conf->max_nr_stripes)) { printk(KERN_ERR