diff --git a/drivers/md/dm.c b/drivers/md/dm.c
index 7870e6460633f85afcc28175c01e7ee2d48532c2..79d4ac4aab052e19f4f2812ec30f78b91433ed0d 100644
--- a/drivers/md/dm.c
+++ b/drivers/md/dm.c
@@ -2078,7 +2078,9 @@ int dm_setup_md_queue(struct mapped_device *md, struct dm_table *t)
 	if (r)
 		return r;
 
-	add_disk(md->disk);
+	r = add_disk(md->disk);
+	if (r)
+		return r;
 
 	r = dm_sysfs_init(md);
 	if (r) {