diff --git a/drivers/md/dm-thin-metadata.c b/drivers/md/dm-thin-metadata.c
index 67871e74c82bc9fc0ce831dad66c920fc368efbc..c219a053c7f66d1ebae80a19b005af38914dbe8c 100644
--- a/drivers/md/dm-thin-metadata.c
+++ b/drivers/md/dm-thin-metadata.c
@@ -1206,6 +1206,12 @@ static int __reserve_metadata_snap(struct dm_pool_metadata *pmd)
 	struct dm_block *copy, *sblock;
 	dm_block_t held_root;
 
+	/*
+	 * We commit to ensure the btree roots which we increment in a
+	 * moment are up to date.
+	 */
+	__commit_transaction(pmd);
+
 	/*
 	 * Copy the superblock.
 	 */