summaryrefslogtreecommitdiff
path: root/packages/busybox/busybox-1.2.1
diff options
context:
space:
mode:
authorMike Westerhof <mwester@dls.net>2006-12-24 02:46:38 +0000
committerMike Westerhof <mwester@dls.net>2006-12-24 02:46:38 +0000
commitc4f552af61b2ff51633ab6fa077ea4514cac6c02 (patch)
tree6705cccc00360105b7b07d7f087b3fd47a893492 /packages/busybox/busybox-1.2.1
parent1172ac52b4d20c1348725351e42b1809fdc9ecec (diff)
Busybox: patch df rootfs device handling code so that the output works correctly on systems that pivot from one root device to another during boot (SlugOS and variants)
Diffstat (limited to 'packages/busybox/busybox-1.2.1')
-rw-r--r--packages/busybox/busybox-1.2.1/df_rootfs.patch34
1 files changed, 34 insertions, 0 deletions
diff --git a/packages/busybox/busybox-1.2.1/df_rootfs.patch b/packages/busybox/busybox-1.2.1/df_rootfs.patch
new file mode 100644
index 0000000000..486318a2cf
--- /dev/null
+++ b/packages/busybox/busybox-1.2.1/df_rootfs.patch
@@ -0,0 +1,34 @@
+--- busybox-1.2.1/coreutils/df.c.orig 2006-11-11 13:25:00.000000000 -0600
++++ busybox-1.2.1/coreutils/df.c 2006-11-11 13:23:15.000000000 -0600
+@@ -47,6 +47,7 @@
+ struct statfs s;
+ static const char hdr_1k[] = "1k-blocks"; /* default display is kilobytes */
+ const char *disp_units_hdr = hdr_1k;
++ int root_done = 0;
+
+ #ifdef CONFIG_FEATURE_HUMAN_READABLE
+ bb_opt_complementally = "h-km:k-hm:m-hk";
+@@ -112,16 +113,19 @@
+ ) / (blocks_used + s.f_bavail);
+ }
+
+- if (strcmp(device, "rootfs") == 0) {
+- continue;
+- } else if (strcmp(device, "/dev/root") == 0) {
++ if (strcmp(device, "/dev/root") == 0 || strcmp(device, "rootfs") == 0) {
+ /* Adjusts device to be the real root device,
+ * or leaves device alone if it can't find it */
+- if ((device = find_block_device("/")) == NULL) {
++ if ((device = find_block_device(mount_point)) == NULL) {
+ goto SET_ERROR;
+ }
+ }
+
++ if (strcmp(mount_point, "/") == 0) {
++ if (root_done) continue;
++ root_done = 1;
++ }
++
+ #ifdef CONFIG_FEATURE_HUMAN_READABLE
+ bb_printf("%-20s %9s ", device,
+ make_human_readable_str(s.f_blocks, s.f_bsize, df_disp_hr));