--- linux-2.6.37.orig/drivers/mtd/mtdpart.c
+++ linux-2.6.37/drivers/mtd/mtdpart.c
@@ -30,6 +30,7 @@
 #include <linux/mtd/mtd.h>
 #include <linux/mtd/partitions.h>
 #include <linux/err.h>
+#include <linux/root_dev.h>
 
 /* Our partition linked list */
 static LIST_HEAD(mtd_partitions);
@@ -641,6 +642,14 @@
 		slave = allocate_partition(master, parts + i, i, cur_offset);
 		if (IS_ERR(slave))
 			return PTR_ERR(slave);
+
+		if (strcmp(parts[i].name, "rootfs") == 0) {
+			if (ROOT_DEV == 0) {
+				printk(KERN_NOTICE "mtd: partition \"rootfs\" "
+					"set to be root filesystem\n");
+					ROOT_DEV = MKDEV(MTD_BLOCK_MAJOR, i);
+			}
+		}
 
 		mutex_lock(&mtd_partitions_mutex);
 		list_add(&slave->list, &mtd_partitions);
