aboutsummaryrefslogtreecommitdiffstats
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
parent1172ac52b4d20c1348725351e42b1809fdc9ecec (diff)
downloadopenembedded-c4f552af61b2ff51633ab6fa077ea4514cac6c02.tar.gz
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)
-rw-r--r--packages/busybox/busybox-1.2.1/df_rootfs.patch34
-rw-r--r--packages/busybox/busybox_1.2.1.bb3
2 files changed, 36 insertions, 1 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));
diff --git a/packages/busybox/busybox_1.2.1.bb b/packages/busybox/busybox_1.2.1.bb
index 36ffd0311c..9205b57d6f 100644
--- a/packages/busybox/busybox_1.2.1.bb
+++ b/packages/busybox/busybox_1.2.1.bb
@@ -1,8 +1,9 @@
require busybox.inc
-PR = "r9"
+PR = "r10"
SRC_URI += "file://wget-long-options.patch;patch=1 \
+ file://df_rootfs.patch;patch=1 \
file://defconfig"
do_configure () {