dm snapshot: free exception store on init failure
authorJonathan Brassow <jbrassow@redhat.com>
Fri, 16 Oct 2009 22:18:14 +0000 (23:18 +0100)
committerAlasdair G Kergon <agk@redhat.com>
Fri, 16 Oct 2009 22:18:14 +0000 (23:18 +0100)
While initializing the snapshot module, if we fail to register
the snapshot target then we must back-out the exception store
module initialization.

Cc: stable@kernel.org
Signed-off-by: Jonathan Brassow <jbrassow@redhat.com>
Reviewed-by: Mikulas Patocka <mpatocka@redhat.com>
Reviewed-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
drivers/md/dm-snap.c

index 3a53a5a9bec8fd5d092dbb12230d29fd3551261d..53f4063f7ea4dfe0490d7b2d54be922136023220 100644 (file)
@@ -1470,7 +1470,7 @@ static int __init dm_snapshot_init(void)
        r = dm_register_target(&snapshot_target);
        if (r) {
                DMERR("snapshot target register failed %d", r);
-               return r;
+               goto bad_register_snapshot_target;
        }
 
        r = dm_register_target(&origin_target);
@@ -1527,6 +1527,9 @@ bad2:
        dm_unregister_target(&origin_target);
 bad1:
        dm_unregister_target(&snapshot_target);
+
+bad_register_snapshot_target:
+       dm_exception_store_exit();
        return r;
 }