From: Jonthan Brassow While initializing the snapshot module, if we fail to register the snapshot target then we must back-out the exception store module initialization. Signed-off-by: Jonathan Brassow Reviewed-by: Mikulas Patocka Reviewed-by: Mike Snitzer Signed-off-by: Alasdair G Kergon --- drivers/md/dm-snap.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) Index: linux-2.6.32-rc3/drivers/md/dm-snap.c =================================================================== --- linux-2.6.32-rc3.orig/drivers/md/dm-snap.c +++ linux-2.6.32-rc3/drivers/md/dm-snap.c @@ -1465,7 +1465,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); @@ -1522,6 +1522,9 @@ bad2: dm_unregister_target(&origin_target); bad1: dm_unregister_target(&snapshot_target); + +bad_register_snapshot_target: + dm_exception_store_exit(); return r; }