From 9d7f0f0fe86be9228db02e672ff5f0b2b4abfff9 Mon Sep 17 00:00:00 2001
From: Eric Andersen <andersen@codepoet.org>
Date: Fri, 20 Jun 2003 09:36:49 +0000
Subject: [PATCH] Somewhere in the 2.4.x kernel series, /proc/mounts was
 changed to display a "rootfs" entry as well as the traditional "/dev/root"
 entry.  This caused applets such as mount and df to display two root
 filesystem entries....

This teaches the relevant utilities to ignore the "rootfs" entry.
 -Erik
---
 coreutils/df.c      | 4 +++-
 util-linux/mount.c  | 4 +++-
 util-linux/umount.c | 4 +++-
 3 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/coreutils/df.c b/coreutils/df.c
index 9673633cc..543527ea4 100644
--- a/coreutils/df.c
+++ b/coreutils/df.c
@@ -126,7 +126,9 @@ extern int df_main(int argc, char **argv)
 									   ) / (blocks_used + s.f_bavail);
 			}
 			
-			if (strcmp(device, "/dev/root") == 0) {
+			if (strcmp(device, "rootfs") == 0) {
+				continue;
+			} else if (strcmp(device, "/dev/root") == 0) {
 				/* Adjusts device to be the real root device,
 				* or leaves device alone if it can't find it */
 				if ((device = find_real_root_device_name(device)) == NULL) {
diff --git a/util-linux/mount.c b/util-linux/mount.c
index d02005600..49d086c97 100644
--- a/util-linux/mount.c
+++ b/util-linux/mount.c
@@ -334,7 +334,9 @@ static void show_mounts(char *onlytype)
 		while ((m = getmntent(mountTable)) != 0) {
 			char *blockDevice = m->mnt_fsname;
 
-			if (strcmp(blockDevice, "/dev/root") == 0) {
+			if (strcmp(blockDevice, "rootfs") == 0) {
+				continue;
+			} else if (strcmp(blockDevice, "/dev/root") == 0) {
 				blockDevice = find_real_root_device_name(blockDevice);
 			}
 			if (!onlytype || (strcmp(m->mnt_type, onlytype) == 0)) {
diff --git a/util-linux/umount.c b/util-linux/umount.c
index 1d3e89301..c11f2e9d7 100644
--- a/util-linux/umount.c
+++ b/util-linux/umount.c
@@ -111,7 +111,9 @@ static char *mtab_getinfo(const char *match, const char which)
 				return cur->mountpt;
 			} else {
 #if !defined CONFIG_FEATURE_MTAB_SUPPORT
-				if (strcmp(cur->device, "/dev/root") == 0) {
+				if (strcmp(cur->device, "rootfs") == 0) {
+					continue;
+				} else if (strcmp(cur->device, "/dev/root") == 0) {
 					/* Adjusts device to be the real root device,
 					 * or leaves device alone if it can't find it */
 					cur->device = find_real_root_device_name(cur->device);