The following commit has been merged in the linux branch: commit 034a186d29dbcef099e57ab23ec39440596be911 Author: Jonathan Brassow jbrassow@redhat.com Date: Fri Oct 16 23:18:14 2009 +0100
dm snapshot: free exception store on init failure
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
diff --git a/drivers/md/dm-snap.c b/drivers/md/dm-snap.c index 3a53a5a..53f4063 100644 --- a/drivers/md/dm-snap.c +++ b/drivers/md/dm-snap.c @@ -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; }