Commit 9ffae0cf authored by NeilBrown's avatar NeilBrown Committed by Linus Torvalds
Browse files

[PATCH] md: convert md to use kzalloc throughout



Replace multiple kmalloc/memset pairs with kzalloc calls.

Signed-off-by: default avatarNeil Brown <neilb@suse.de>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 2d1f3b5d
Loading
Loading
Loading
Loading
+3 −8
Original line number Diff line number Diff line
@@ -887,12 +887,10 @@ static int bitmap_init_from_disk(struct bitmap *bitmap, sector_t start)
	if (!bitmap->filemap)
		goto out;

	bitmap->filemap_attr = kmalloc(sizeof(long) * num_pages, GFP_KERNEL);
	bitmap->filemap_attr = kzalloc(sizeof(long) * num_pages, GFP_KERNEL);
	if (!bitmap->filemap_attr)
		goto out;

	memset(bitmap->filemap_attr, 0, sizeof(long) * num_pages);

	oldindex = ~0L;

	for (i = 0; i < chunks; i++) {
@@ -1557,12 +1555,10 @@ int bitmap_create(mddev_t *mddev)

	BUG_ON(file && mddev->bitmap_offset);

	bitmap = kmalloc(sizeof(*bitmap), GFP_KERNEL);
	bitmap = kzalloc(sizeof(*bitmap), GFP_KERNEL);
	if (!bitmap)
		return -ENOMEM;

	memset(bitmap, 0, sizeof(*bitmap));

	spin_lock_init(&bitmap->lock);
	bitmap->mddev = mddev;

@@ -1603,12 +1599,11 @@ int bitmap_create(mddev_t *mddev)
#ifdef INJECT_FATAL_FAULT_1
	bitmap->bp = NULL;
#else
	bitmap->bp = kmalloc(pages * sizeof(*bitmap->bp), GFP_KERNEL);
	bitmap->bp = kzalloc(pages * sizeof(*bitmap->bp), GFP_KERNEL);
#endif
	err = -ENOMEM;
	if (!bitmap->bp)
		goto error;
	memset(bitmap->bp, 0, pages * sizeof(*bitmap->bp));

	bitmap->flags |= BITMAP_ACTIVE;

+1 −2
Original line number Diff line number Diff line
@@ -121,11 +121,10 @@ static int linear_run (mddev_t *mddev)
	sector_t curr_offset;
	struct list_head *tmp;

	conf = kmalloc (sizeof (*conf) + mddev->raid_disks*sizeof(dev_info_t),
	conf = kzalloc (sizeof (*conf) + mddev->raid_disks*sizeof(dev_info_t),
			GFP_KERNEL);
	if (!conf)
		goto out;
	memset(conf, 0, sizeof(*conf) + mddev->raid_disks*sizeof(dev_info_t));
	mddev->private = conf;

	cnt = 0;
+3 −7
Original line number Diff line number Diff line
@@ -228,12 +228,10 @@ static mddev_t * mddev_find(dev_t unit)
	}
	spin_unlock(&all_mddevs_lock);

	new = (mddev_t *) kmalloc(sizeof(*new), GFP_KERNEL);
	new = kzalloc(sizeof(*new), GFP_KERNEL);
	if (!new)
		return NULL;

	memset(new, 0, sizeof(*new));

	new->unit = unit;
	if (MAJOR(unit) == MD_MAJOR)
		new->md_minor = MINOR(unit);
@@ -1620,12 +1618,11 @@ static mdk_rdev_t *md_import_device(dev_t newdev, int super_format, int super_mi
	mdk_rdev_t *rdev;
	sector_t size;

	rdev = (mdk_rdev_t *) kmalloc(sizeof(*rdev), GFP_KERNEL);
	rdev = kzalloc(sizeof(*rdev), GFP_KERNEL);
	if (!rdev) {
		printk(KERN_ERR "md: could not alloc mem for new device!\n");
		return ERR_PTR(-ENOMEM);
	}
	memset(rdev, 0, sizeof(*rdev));

	if ((err = alloc_disk_sb(rdev)))
		goto abort_free;
@@ -3505,11 +3502,10 @@ mdk_thread_t *md_register_thread(void (*run) (mddev_t *), mddev_t *mddev,
{
	mdk_thread_t *thread;

	thread = kmalloc(sizeof(mdk_thread_t), GFP_KERNEL);
	thread = kzalloc(sizeof(mdk_thread_t), GFP_KERNEL);
	if (!thread)
		return NULL;

	memset(thread, 0, sizeof(mdk_thread_t));
	init_waitqueue_head(&thread->wqueue);

	thread->run = run;
+3 −7
Original line number Diff line number Diff line
@@ -41,9 +41,7 @@ static mdk_personality_t multipath_personality;
static void *mp_pool_alloc(gfp_t gfp_flags, void *data)
{
	struct multipath_bh *mpb;
	mpb = kmalloc(sizeof(*mpb), gfp_flags);
	if (mpb) 
		memset(mpb, 0, sizeof(*mpb));
	mpb = kzalloc(sizeof(*mpb), gfp_flags);
	return mpb;
}

@@ -444,7 +442,7 @@ static int multipath_run (mddev_t *mddev)
	 * should be freed in multipath_stop()]
	 */

	conf = kmalloc(sizeof(multipath_conf_t), GFP_KERNEL);
	conf = kzalloc(sizeof(multipath_conf_t), GFP_KERNEL);
	mddev->private = conf;
	if (!conf) {
		printk(KERN_ERR 
@@ -452,9 +450,8 @@ static int multipath_run (mddev_t *mddev)
			mdname(mddev));
		goto out;
	}
	memset(conf, 0, sizeof(*conf));

	conf->multipaths = kmalloc(sizeof(struct multipath_info)*mddev->raid_disks,
	conf->multipaths = kzalloc(sizeof(struct multipath_info)*mddev->raid_disks,
				   GFP_KERNEL);
	if (!conf->multipaths) {
		printk(KERN_ERR 
@@ -462,7 +459,6 @@ static int multipath_run (mddev_t *mddev)
			mdname(mddev));
		goto out_free_conf;
	}
	memset(conf->multipaths, 0, sizeof(struct multipath_info)*mddev->raid_disks);

	conf->working_disks = 0;
	ITERATE_RDEV(mddev,rdev,tmp) {
+2 −7
Original line number Diff line number Diff line
@@ -113,21 +113,16 @@ static int create_strip_zones (mddev_t *mddev)
	}
	printk("raid0: FINAL %d zones\n", conf->nr_strip_zones);

	conf->strip_zone = kmalloc(sizeof(struct strip_zone)*
	conf->strip_zone = kzalloc(sizeof(struct strip_zone)*
				conf->nr_strip_zones, GFP_KERNEL);
	if (!conf->strip_zone)
		return 1;
	conf->devlist = kmalloc(sizeof(mdk_rdev_t*)*
	conf->devlist = kzalloc(sizeof(mdk_rdev_t*)*
				conf->nr_strip_zones*mddev->raid_disks,
				GFP_KERNEL);
	if (!conf->devlist)
		return 1;

	memset(conf->strip_zone, 0,sizeof(struct strip_zone)*
				   conf->nr_strip_zones);
	memset(conf->devlist, 0,
	       sizeof(mdk_rdev_t*) * conf->nr_strip_zones * mddev->raid_disks);

	/* The first zone must contain all devices, so here we check that
	 * there is a proper alignment of slots to devices and find them all
	 */
Loading