[dm-devel] [PATCH 12 of 12]: dm-snapshot-new-ctr-table-format.patch

FUJITA Tomonori fujita.tomonori at lab.ntt.co.jp
Mon Feb 2 22:55:32 UTC 2009


On Tue, 20 Jan 2009 14:14:27 -0600
Jonathan Brassow <jbrassow at redhat.com> wrote:

> -	if (1 /* less change patch to patch */) {
> +	/* Detect old-style table line with type as second arg. */
> +	if (!isdigit(*argv[1])) {
>  		if (argc < 3) {
>  			ti->error = "Insufficient exception store arguments";
>  			return -EINVAL;
> @@ -605,10 +611,34 @@ static int create_exception_store(struct
>  		return dm_exception_store_create(toupper(*argv[1]), ti, 2,
>  						 tmp_argv, store);
>  	}
> +
> +	if (sscanf(argv[1], "%u", &param_count) != 1) {
> +		ti->error = "Invalid exception store argument count";
> +		return -EINVAL;
> +	}
> +
> +	*args_used = 2 + param_count;
> +
> +	if (argc < *args_used) {
> +		ti->error = "Insufficient exception store arguments";
> +		return -EINVAL;
> +	}
> +
> +	return dm_exception_store_create(argv[0], ti, param_count,
> +					 argv + 2, store);
>  }

Seems that this gives me:

drivers/md/dm-snap.c: In function 'create_exception_store':
drivers/md/dm-snap.c:613: warning: passing argument 1 of 'dm_exception_store_create' makes pointer from integer without a cast


BTW, how about adding something like 'compat_name' to struct
dm_exception_store_type instead of registering two similar structures
like the followings?

static struct dm_exception_store_type _persistent_type = {
	.name = "persistent",
	.module = THIS_MODULE,
	.ctr = persistent_ctr,
	.dtr = persistent_dtr,
	.read_metadata = persistent_read_metadata,
	.prepare_exception = persistent_prepare_exception,
	.commit_exception = persistent_commit_exception,
	.drop_snapshot = persistent_drop_snapshot,
	.fraction_full = persistent_fraction_full,
	.status = persistent_status,
};

static struct dm_exception_store_type _persistent_compat_type = {
	.name = "P",
	.module = THIS_MODULE,
	.ctr = persistent_ctr,
	.dtr = persistent_dtr,
	.read_metadata = persistent_read_metadata,
	.prepare_exception = persistent_prepare_exception,
	.commit_exception = persistent_commit_exception,
	.drop_snapshot = persistent_drop_snapshot,
	.fraction_full = persistent_fraction_full,
	.status = persistent_status,
};




More information about the dm-devel mailing list