← Commit list

f2860bf6d

Denys Vlasenko
Denys Vlasenko
2010-08-16
FAILED Duration: 47s

Subject

mdev: fix non-working device deletion, add a test for that

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

testsuite/mdev.tests+10 -0
@@ -37,6 +37,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
util-linux/mdev.c+3 -2
@@ -132,6 +132,7 @@ static void make_device(char *path, int delete)
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 delete)
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 delete)
free(command);
}
- if (delete && major >= 0) {
+ if (delete && major >= -1) {
if (ENABLE_FEATURE_MDEV_RENAME && alias) {
if (aliaslink == '>')
unlink(device_name);