ti->split_io = ms->rh.region_size; 
static int mirror_ctr(struct dm_target *ti, unsigned int argc, char **argv){	int r;	unsigned int nr_mirrors, m, args_used;	struct mirror_set *ms;	struct dirty_log *dl;	dl = create_dirty_log(ti, argc, argv, &args_used);	if (!dl)		return -EINVAL;	argv += args_used;	argc -= args_used;	if (!argc || sscanf(argv[0], "%u", &nr_mirrors) != 1 ||	    nr_mirrors < 2 || nr_mirrors > KCOPYD_MAX_REGIONS + 1) {		ti->error = "dm-mirror: Invalid number of mirrors";		dm_destroy_dirty_log(dl);		return -EINVAL;	}	argv++, argc--;	if (argc != nr_mirrors * 2) {		ti->error = "dm-mirror: Wrong number of mirror arguments";		dm_destroy_dirty_log(dl);		return -EINVAL;	}	ms = alloc_context(nr_mirrors, dl->type->get_region_size(dl), ti, dl);	if (!ms) {		dm_destroy_dirty_log(dl);		return -ENOMEM;	}	/* Get the mirror parameter sets */	for (m = 0; m < nr_mirrors; m++) {		r = get_mirror(ms, ti, m, argv);		if (r) {			free_context(ms, ti, m);			return r;		}		argv += 2;		argc -= 2;	}	ti->private = ms;	r = kcopyd_client_create(DM_IO_PAGES, &ms->kcopyd_client);	if (r) {		free_context(ms, ti, ms->nr_mirrors);		return r;	}	add_mirror_set(ms);	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/d88854f08961d26f3a63cfae7972188d26a128e4/dm-raid1.c/clean/drivers/md/dm-raid1.c