dm thin: fix the error path for the thin device constructor
authorMike Snitzer <snitzer@redhat.com>
Thu, 20 Feb 2014 01:32:33 +0000 (20:32 -0500)
committerJiri Slaby <jslaby@suse.cz>
Wed, 5 Mar 2014 16:13:55 +0000 (17:13 +0100)
commit5da2b53fd5cc451eea0a2d66bc9702724155bd66
treebb3ac632a0e20b6e25b3a969f1ea80e95236f1df
parentd4c47a2b64e03a90281875b67a082a577de0ff43
dm thin: fix the error path for the thin device constructor

commit 1acacc0784aab45627b6009e0e9224886279ac0b upstream.

dm_pool_close_thin_device() must be called if dm_set_target_max_io_len()
fails in thin_ctr().  Otherwise __pool_destroy() will fail because the
pool will still have an open thin device:

 device-mapper: thin metadata: attempt to close pmd when 1 device(s) are still open
 device-mapper: thin: __pool_destroy: dm_pool_metadata_close() failed.

Also, must establish error code if failing thin_ctr() because the pool
is in fail_io mode.

Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Acked-by: Joe Thornber <ejt@redhat.com>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
drivers/md/dm-thin.c