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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 7 Mar 2014 06:06:30 +0000 (22:06 -0800)
commitda723a73aef66345a9c69253666d8c9b52deec9c
tree09a0b5a570746d77e47f734c5895d46cd15cc99d
parent5a6ffcbbf827518ada88e9ac38ae88c6709a6c87
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/md/dm-thin.c