32 lines
1.3 KiB
Diff
32 lines
1.3 KiB
Diff
|
From 496068a8288084ab3ecf8b179a8403ecff1a6be8 Mon Sep 17 00:00:00 2001
|
||
|
From: Martin Pitt <martin.pitt@ubuntu.com>
|
||
|
Date: Fri, 13 Mar 2015 08:35:59 +0100
|
||
|
Subject: core: don't change removed devices to state "tentative"
|
||
|
|
||
|
Commit 628c89c introduced the "tentative" device state, which caused
|
||
|
devices to go from "plugged" to "tentative" on a remove uevent. This
|
||
|
breaks the cleanup of stale mounts (see commit 3b48ce4), as that only
|
||
|
applies to "dead" devices.
|
||
|
|
||
|
The "tentative" state only really makes sense on adding a device when
|
||
|
we don't know where it was coming from (i. e. not from udev). But when
|
||
|
we get a device removal from udev we definitively know that it's gone,
|
||
|
so change the device state back to "dead" as before 628c89c.
|
||
|
|
||
|
diff --git a/src/core/device.c b/src/core/device.c
|
||
|
index 4bfd71f..b5d9d82 100644
|
||
|
--- a/src/core/device.c
|
||
|
+++ b/src/core/device.c
|
||
|
@@ -419,7 +419,7 @@ static void device_update_found_one(Device *d, bool add, DeviceFound found, bool
|
||
|
if (now) {
|
||
|
if (d->found & DEVICE_FOUND_UDEV)
|
||
|
device_set_state(d, DEVICE_PLUGGED);
|
||
|
- else if (d->found != DEVICE_NOT_FOUND)
|
||
|
+ else if (add && d->found != DEVICE_NOT_FOUND)
|
||
|
device_set_state(d, DEVICE_TENTATIVE);
|
||
|
else
|
||
|
device_set_state(d, DEVICE_DEAD);
|
||
|
--
|
||
|
cgit v0.10.2
|
||
|
|