dcavalca / rpms / systemd

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