dm cache: avoid calling policy destructor twice on error
authorHeinz Mauelshagen <heinzm@redhat.com>
Wed, 20 Mar 2013 17:21:26 +0000 (17:21 +0000)
committerAlasdair G Kergon <agk@redhat.com>
Wed, 20 Mar 2013 17:21:26 +0000 (17:21 +0000)
If the cache policy's config values are not able to be set we must
set the policy to NULL after destroying it in create_cache_policy()
so we don't attempt to destroy it a second time later.

Signed-off-by: Heinz Mauelshagen <heinzm@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
drivers/md/dm-cache-target.c

index 76cc910557f049b59a0b81fc384167cf82af6669..79ac8603644d0c5be2ebaa71759cb4b46d2fa4b1 100644 (file)
@@ -1763,8 +1763,11 @@ static int create_cache_policy(struct cache *cache, struct cache_args *ca,
        }
 
        r = set_config_values(cache->policy, ca->policy_argc, ca->policy_argv);
-       if (r)
+       if (r) {
+               *error = "Error setting cache policy's config values";
                dm_cache_policy_destroy(cache->policy);
+               cache->policy = NULL;
+       }
 
        return r;
 }