summaryrefslogtreecommitdiff
path: root/package/busybox/busybox-1.17.1/busybox-1.17.1-mdev.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/busybox/busybox-1.17.1/busybox-1.17.1-mdev.patch')
-rw-r--r--package/busybox/busybox-1.17.1/busybox-1.17.1-mdev.patch49
1 files changed, 49 insertions, 0 deletions
diff --git a/package/busybox/busybox-1.17.1/busybox-1.17.1-mdev.patch b/package/busybox/busybox-1.17.1/busybox-1.17.1-mdev.patch
new file mode 100644
index 000000000..71c7abdab
--- /dev/null
+++ b/package/busybox/busybox-1.17.1/busybox-1.17.1-mdev.patch
@@ -0,0 +1,49 @@
+diff -urpN busybox-1.17.1/testsuite/mdev.tests busybox-1.17.1-mdev/testsuite/mdev.tests
+--- busybox-1.17.1/testsuite/mdev.tests 2010-07-06 04:25:54.000000000 +0200
++++ busybox-1.17.1-mdev/testsuite/mdev.tests 2010-08-23 02:38:21.000000000 +0200
+@@ -38,6 +38,16 @@ brw-rw---- 1 0 0 8,0 sda
+ SKIP=
+
+ # continuing to use directory structure from prev test
++optional STATIC FEATURE_MDEV_CONF FEATURE_LS_TIMESTAMPS FEATURE_LS_USERNAME
++testing "mdev deletes /block/sda" \
++ "env - PATH=$PATH ACTION=remove DEVPATH=/block/sda chroot mdev.testdir /mdev 2>&1;
++ ls -ln mdev.testdir/dev | $FILTER_LS" \
++"\
++" \
++ "" ""
++SKIP=
++
++# continuing to use directory structure from prev test
+ rm -rf mdev.testdir/dev/*
+ echo ".* 1:1 666" >mdev.testdir/etc/mdev.conf
+ echo "sda 2:2 444" >>mdev.testdir/etc/mdev.conf
+diff -urpN busybox-1.17.1/util-linux/mdev.c busybox-1.17.1-mdev/util-linux/mdev.c
+--- busybox-1.17.1/util-linux/mdev.c 2010-07-06 04:25:54.000000000 +0200
++++ busybox-1.17.1-mdev/util-linux/mdev.c 2010-08-23 02:38:21.000000000 +0200
+@@ -132,6 +132,7 @@ static void make_device(char *path, int
+ major = -1;
+ }
+ }
++ /* else: for delete, -1 still deletes the node, but < -1 suppresses that */
+
+ /* Determine device name, type, major and minor */
+ device_name = (char*) bb_basename(path);
+@@ -279,7 +280,7 @@ static void make_device(char *path, int
+ if (aliaslink == '!' && s == a+1) {
+ val = st;
+ /* "!": suppress node creation/deletion */
+- major = -1;
++ major = -2;
+ }
+ else if (aliaslink == '>' || aliaslink == '=') {
+ val = st;
+@@ -379,7 +380,7 @@ static void make_device(char *path, int
+ free(command);
+ }
+
+- if (delete && major >= 0) {
++ if (delete && major >= -1) {
+ if (ENABLE_FEATURE_MDEV_RENAME && alias) {
+ if (aliaslink == '>')
+ unlink(device_name);