dm thin metadata: lift some initialisation out of __open_or_format_metadata

Lift some initialisation out of __open_or_format_metadata in dm-thin-metadata.

Signed-off-by: Joe Thornber <ejt@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
diff --git a/drivers/md/dm-thin-metadata.c b/drivers/md/dm-thin-metadata.c
index b646a71f..ce487aa 100644
--- a/drivers/md/dm-thin-metadata.c
+++ b/drivers/md/dm-thin-metadata.c
@@ -489,14 +489,11 @@
 	}
 
 	__setup_btree_details(pmd);
-	pmd->root = 0;
 
-	init_rwsem(&pmd->root_lock);
-	pmd->time = 0;
+	pmd->root = 0;
 	pmd->details_root = 0;
 	pmd->trans_id = 0;
 	pmd->flags = 0;
-	INIT_LIST_HEAD(&pmd->thin_devices);
 
 	return 0;
 
@@ -710,6 +707,9 @@
 		return ERR_PTR(-ENOMEM);
 	}
 
+	init_rwsem(&pmd->root_lock);
+	pmd->time = 0;
+	INIT_LIST_HEAD(&pmd->thin_devices);
 	pmd->bdev = bdev;
 
 	r = __create_persistent_data_objects(pmd, 0, &create);