diff options
author | Paul Mackerras <paulus@samba.org> | 2006-03-28 21:24:50 -0500 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2006-03-28 21:24:50 -0500 |
commit | bac30d1a78d0f11c613968fc8b351a91ed465386 (patch) | |
tree | e52f3c876522a2f6047a6ec1c27df2e8a79486b8 /drivers/md/raid6main.c | |
parent | e8222502ee6157e2713da9e0792c21f4ad458d50 (diff) | |
parent | ca9ba4471c1203bb6e759b76e83167fec54fe590 (diff) |
Merge ../linux-2.6
Diffstat (limited to 'drivers/md/raid6main.c')
-rw-r--r-- | drivers/md/raid6main.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/drivers/md/raid6main.c b/drivers/md/raid6main.c index cd477ebf2ee4..6df4930fddec 100644 --- a/drivers/md/raid6main.c +++ b/drivers/md/raid6main.c | |||
@@ -331,9 +331,9 @@ static int grow_stripes(raid6_conf_t *conf, int num) | |||
331 | kmem_cache_t *sc; | 331 | kmem_cache_t *sc; |
332 | int devs = conf->raid_disks; | 332 | int devs = conf->raid_disks; |
333 | 333 | ||
334 | sprintf(conf->cache_name, "raid6/%s", mdname(conf->mddev)); | 334 | sprintf(conf->cache_name[0], "raid6/%s", mdname(conf->mddev)); |
335 | 335 | ||
336 | sc = kmem_cache_create(conf->cache_name, | 336 | sc = kmem_cache_create(conf->cache_name[0], |
337 | sizeof(struct stripe_head)+(devs-1)*sizeof(struct r5dev), | 337 | sizeof(struct stripe_head)+(devs-1)*sizeof(struct r5dev), |
338 | 0, 0, NULL, NULL); | 338 | 0, 0, NULL, NULL); |
339 | if (!sc) | 339 | if (!sc) |
@@ -2006,11 +2006,14 @@ static int run(mddev_t *mddev) | |||
2006 | return -EIO; | 2006 | return -EIO; |
2007 | } | 2007 | } |
2008 | 2008 | ||
2009 | mddev->private = kzalloc(sizeof (raid6_conf_t) | 2009 | mddev->private = kzalloc(sizeof (raid6_conf_t), GFP_KERNEL); |
2010 | + mddev->raid_disks * sizeof(struct disk_info), | ||
2011 | GFP_KERNEL); | ||
2012 | if ((conf = mddev->private) == NULL) | 2010 | if ((conf = mddev->private) == NULL) |
2013 | goto abort; | 2011 | goto abort; |
2012 | conf->disks = kzalloc(mddev->raid_disks * sizeof(struct disk_info), | ||
2013 | GFP_KERNEL); | ||
2014 | if (!conf->disks) | ||
2015 | goto abort; | ||
2016 | |||
2014 | conf->mddev = mddev; | 2017 | conf->mddev = mddev; |
2015 | 2018 | ||
2016 | if ((conf->stripe_hashtbl = kzalloc(PAGE_SIZE, GFP_KERNEL)) == NULL) | 2019 | if ((conf->stripe_hashtbl = kzalloc(PAGE_SIZE, GFP_KERNEL)) == NULL) |
@@ -2158,6 +2161,7 @@ abort: | |||
2158 | print_raid6_conf(conf); | 2161 | print_raid6_conf(conf); |
2159 | safe_put_page(conf->spare_page); | 2162 | safe_put_page(conf->spare_page); |
2160 | kfree(conf->stripe_hashtbl); | 2163 | kfree(conf->stripe_hashtbl); |
2164 | kfree(conf->disks); | ||
2161 | kfree(conf); | 2165 | kfree(conf); |
2162 | } | 2166 | } |
2163 | mddev->private = NULL; | 2167 | mddev->private = NULL; |