[dm-devel] [PATCH] dm-cache: return -EINVAL, not -ENOMEM, if the user specifies unknown policy

Mikulas Patocka mpatocka at redhat.com
Tue Oct 1 22:35:39 UTC 2013


dm-cache: return -EINVAL, not -ENOMEM, if the user specifies unknown 
policy

Signed-off-by: Mikulas Patocka <mpatocka at redhat.com>

---
 drivers/md/dm-cache-policy.c |    4 ++--
 drivers/md/dm-cache-target.c |    8 +++++---
 2 files changed, 7 insertions(+), 5 deletions(-)

Index: linux-3.10.13-fast/drivers/md/dm-cache-target.c
===================================================================
--- linux-3.10.13-fast.orig/drivers/md/dm-cache-target.c	2013-10-01 16:30:54.000000000 +0200
+++ linux-3.10.13-fast/drivers/md/dm-cache-target.c	2013-10-01 17:29:43.000000000 +0200
@@ -1865,15 +1865,17 @@ static int set_config_values(struct cach
 static int create_cache_policy(struct cache *cache, struct cache_args *ca,
 			       char **error)
 {
-	cache->policy =	dm_cache_policy_create(ca->policy_name,
+	struct dm_cache_policy *p = dm_cache_policy_create(ca->policy_name,
 					       cache->cache_size,
 					       cache->origin_sectors,
 					       cache->sectors_per_block);
-	if (!cache->policy) {
+	if (IS_ERR(p)) {
 		*error = "Error creating cache's policy";
-		return -ENOMEM;
+		return PTR_ERR(p);
 	}
 
+	cache->policy = p;
+
 	return 0;
 }
 
Index: linux-3.10.13-fast/drivers/md/dm-cache-policy.c
===================================================================
--- linux-3.10.13-fast.orig/drivers/md/dm-cache-policy.c	2013-10-01 17:29:50.000000000 +0200
+++ linux-3.10.13-fast/drivers/md/dm-cache-policy.c	2013-10-01 17:30:05.000000000 +0200
@@ -119,13 +119,13 @@ struct dm_cache_policy *dm_cache_policy_
 	type = get_policy(name);
 	if (!type) {
 		DMWARN("unknown policy type");
-		return NULL;
+		return ERR_PTR(-EINVAL);
 	}
 
 	p = type->create(cache_size, origin_size, cache_block_size);
 	if (!p) {
 		put_policy(type);
-		return NULL;
+		return ERR_PTR(-ENOMEM);
 	}
 	p->private = type;
 




More information about the dm-devel mailing list