dm snapshot: free exception store on init failure
authorJonathan Brassow <[email protected]>
Fri, 16 Oct 2009 22:18:14 +0000 (23:18 +0100)
committerAlasdair G Kergon <[email protected]>
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: [email protected]
Signed-off-by: Jonathan Brassow <[email protected]>
Reviewed-by: Mikulas Patocka <[email protected]>
Reviewed-by: Mike Snitzer <[email protected]>
Signed-off-by: Alasdair G Kergon <[email protected]>
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;
 }