richardphibel / rpms / systemd

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