[BusyBox-cvs] CVS update of busybox (coreutils/df.c include/libbb.h libbb/find_root_device.c util-linux/mount.c util-linux/umount.c)
Erik Andersen
andersen at codepoet.org
Tue Aug 3 00:14:03 UTC 2004
Date: Monday, August 2, 2004 @ 18:14:03
Author: andersen
Path: /var/cvs/busybox
Modified: coreutils/df.c (1.57 -> 1.58) include/libbb.h (1.132 -> 1.133)
libbb/find_root_device.c (1.12 -> 1.13) util-linux/mount.c
(1.119 -> 1.120) util-linux/umount.c (1.64 -> 1.65)
Tito, farmatito at tiscali dot it writes:
Hi to all,
This patch is useful for:
1) remove an unused var from extern char *find_real_root_device_name(const char* name)
changing it to extern char *find_real_root_device_name(void).
2) fixes include/libbb.h, coreutils/df.c, util-linux/mount.c and util-linux/umount.c accordingly.
3) fixes a bug, really a false positive, in find_real_root_device_name() that happens if
in the /dev directory exists a link named root (/dev/root) that should be skipped but
is not. This affects applets like df that display wrong results
Index: busybox/coreutils/df.c
diff -u busybox/coreutils/df.c:1.57 busybox/coreutils/df.c:1.58
--- busybox/coreutils/df.c:1.57 Wed Apr 14 11:51:09 2004
+++ busybox/coreutils/df.c Mon Aug 2 18:14:01 2004
@@ -130,7 +130,7 @@
} 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) {
+ if ((device = find_real_root_device_name()) == NULL) {
goto SET_ERROR;
}
}
Index: busybox/include/libbb.h
diff -u busybox/include/libbb.h:1.132 busybox/include/libbb.h:1.133
--- busybox/include/libbb.h:1.132 Tue Jun 22 04:07:15 2004
+++ busybox/include/libbb.h Mon Aug 2 18:14:01 2004
@@ -134,7 +134,7 @@
char* filesystemType, long flags, char* string_flags);
extern void erase_mtab(const char * name);
extern long *find_pid_by_name( const char* pidName);
-extern char *find_real_root_device_name(const char* name);
+extern char *find_real_root_device_name(void);
extern char *bb_get_line_from_file(FILE *file);
extern char *bb_get_chomped_line_from_file(FILE *file);
extern int bb_copyfd_size(int fd1, int fd2, const off_t size);
Index: busybox/libbb/find_root_device.c
diff -u busybox/libbb/find_root_device.c:1.12 busybox/libbb/find_root_device.c:1.13
--- busybox/libbb/find_root_device.c:1.12 Mon Mar 15 01:28:42 2004
+++ busybox/libbb/find_root_device.c Mon Aug 2 18:14:02 2004
@@ -27,7 +27,7 @@
-extern char *find_real_root_device_name(const char* name)
+extern char *find_real_root_device_name(void)
{
DIR *dir;
struct dirent *entry;
@@ -54,7 +54,11 @@
* would get a false positive on ".." */
if (myname[0] == '.' && myname[1] == '.' && !myname[2])
continue;
-
+#ifdef CONFIG_FEATURE_DEVFS
+ /* if there is a link named /dev/root skip that too */
+ if (strcmp(myname, "root")==0)
+ continue;
+#endif
fileName = concat_path_file("/dev", myname);
/* Some char devices have the same dev_t as block
Index: busybox/util-linux/mount.c
diff -u busybox/util-linux/mount.c:1.119 busybox/util-linux/mount.c:1.120
--- busybox/util-linux/mount.c:1.119 Wed May 26 15:26:07 2004
+++ busybox/util-linux/mount.c Mon Aug 2 18:14:02 2004
@@ -345,7 +345,7 @@
if (strcmp(blockDevice, "rootfs") == 0) {
continue;
} else if (strcmp(blockDevice, "/dev/root") == 0) {
- blockDevice = find_real_root_device_name(blockDevice);
+ blockDevice = find_real_root_device_name();
}
if (!onlytype || (strcmp(m->mnt_type, onlytype) == 0)) {
printf("%s on %s type %s (%s)\n", blockDevice, m->mnt_dir,
Index: busybox/util-linux/umount.c
diff -u busybox/util-linux/umount.c:1.64 busybox/util-linux/umount.c:1.65
--- busybox/util-linux/umount.c:1.64 Mon Mar 15 01:29:22 2004
+++ busybox/util-linux/umount.c Mon Aug 2 18:14:02 2004
@@ -115,7 +115,7 @@
} 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);
+ cur->device = find_real_root_device_name();
}
#endif
return cur->device;
More information about the busybox-cvs
mailing list