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