diff --git a/drivers/md/dm.c b/drivers/md/dm.c
index 76d9da49fda7563bf45a834243c46f4c691104af..b966634cafd44fcc7c148ff64027cf268a65ba35 100644
--- a/drivers/md/dm.c
+++ b/drivers/md/dm.c
@@ -2086,7 +2086,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) {