diff options
author | Mikulas Patocka <mpatocka@redhat.com> | 2013-10-01 18:35:39 -0400 |
---|---|---|
committer | Mike Snitzer <snitzer@redhat.com> | 2013-11-09 18:20:18 -0500 |
commit | 4cb3e1db21a94781bbf05238687c3e8a715ab2f9 (patch) | |
tree | cb1f1a00806693dedcb98eec12f81a1598d36924 /drivers/md/dm-cache-target.c | |
parent | dd8b0c2096e53b336324e99455efcc498599ba0f (diff) |
dm cache: return -EINVAL if the user specifies unknown cache policy
Return -EINVAL when the specified cache policy is unknown rather than
returning -ENOMEM.
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Diffstat (limited to 'drivers/md/dm-cache-target.c')
-rw-r--r-- | drivers/md/dm-cache-target.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/drivers/md/dm-cache-target.c b/drivers/md/dm-cache-target.c index 50afdf72285b..81fe85757585 100644 --- a/drivers/md/dm-cache-target.c +++ b/drivers/md/dm-cache-target.c | |||
@@ -1879,14 +1879,15 @@ static int set_config_values(struct cache *cache, int argc, const char **argv) | |||
1879 | static int create_cache_policy(struct cache *cache, struct cache_args *ca, | 1879 | static int create_cache_policy(struct cache *cache, struct cache_args *ca, |
1880 | char **error) | 1880 | char **error) |
1881 | { | 1881 | { |
1882 | cache->policy = dm_cache_policy_create(ca->policy_name, | 1882 | struct dm_cache_policy *p = dm_cache_policy_create(ca->policy_name, |
1883 | cache->cache_size, | 1883 | cache->cache_size, |
1884 | cache->origin_sectors, | 1884 | cache->origin_sectors, |
1885 | cache->sectors_per_block); | 1885 | cache->sectors_per_block); |
1886 | if (!cache->policy) { | 1886 | if (IS_ERR(p)) { |
1887 | *error = "Error creating cache's policy"; | 1887 | *error = "Error creating cache's policy"; |
1888 | return -ENOMEM; | 1888 | return PTR_ERR(p); |
1889 | } | 1889 | } |
1890 | cache->policy = p; | ||
1890 | 1891 | ||
1891 | return 0; | 1892 | return 0; |
1892 | } | 1893 | } |