summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2011-02-09 14:48:52 +0100
committerLennart Poettering <lennart@poettering.net>2011-02-09 14:48:52 +0100
commit2958c8861471ba899ecbb5fcc1951d74746a9163 (patch)
treec8e7bb1c4e2801cf41013d5b4c07ce8d6b7a6fbc
parente1b2b49465615727a2c3883d06d1b9ff339aec67 (diff)
device: consider udev devices with SYSTEMD_READY=0 as unplugged
-rw-r--r--TODO13
-rw-r--r--src/device.c6
2 files changed, 7 insertions, 12 deletions
diff --git a/TODO b/TODO
index 4e9d4e1be4..1720313059 100644
--- a/TODO
+++ b/TODO
@@ -1,8 +1,5 @@
Bugs:
-* somehow some /etc/fstab supplied mount params are never applied to api fs
- https://bugzilla.redhat.com/show_bug.cgi?id=663108
-
* isolate multi-user.target doesn't start a getty@tty1 if we run it from graphical.target
* when plymouth is disabled the console password entry stuff seems to be borked
@@ -10,24 +7,20 @@ Bugs:
* fsck.btrfs non-existance should not cause mounting to fail
-* need a way to apply mount options of api vfs from systemd unit files instead of fstab
-
Features:
-* make it possible to enable status msgs via RT sigs
+* need a way to apply mount options of api vfs from systemd unit files instead of fstab
* udisks should not use udisks-part-id, instead use blkid. also not probe /dev/loopxxx
-* snd-seq muss weg
+* snd-seq should go, https://bugzilla.redhat.com/show_bug.cgi?id=676095
-* mount.tmpfs soll weg und grep weg
+* mount.tmpfs should be optimized, https://bugzilla.redhat.com/show_bug.cgi?id=676100
* mdmon is irre
* gnome-shell python script/glxinfo/is-accelerated wech
-* plymouth muss sauber exiten, wenn's schon läuft
-
* pull in by udev change event instead of only start event
* PID heuristik bei Type=forking ausmachbar machen
diff --git a/src/device.c b/src/device.c
index 5289da3e42..b9d8a2b9cf 100644
--- a/src/device.c
+++ b/src/device.c
@@ -526,7 +526,7 @@ fail:
void device_fd_event(Manager *m, int events) {
struct udev_device *dev;
int r;
- const char *action;
+ const char *action, *ready;
assert(m);
@@ -552,7 +552,9 @@ void device_fd_event(Manager *m, int events) {
goto fail;
}
- if (streq(action, "remove")) {
+ ready = udev_device_get_property_value(dev, "SYSTEMD_READY");
+
+ if (streq(action, "remove") || (ready && parse_boolean(ready) == 0)) {
if ((r = device_process_removed_device(m, dev)) < 0) {
log_error("Failed to process udev device event: %s", strerror(-r));
goto fail;