From 3126d64e5f04cd39033f8c5055e80440b8680d86 Mon Sep 17 00:00:00 2001
From: Yu Watanabe <watanabe.yu+github@gmail.com>
Date: Tue, 5 Nov 2019 23:02:31 +0900
Subject: [PATCH] sd-device-enumerator: do not return error when a device is
 removed

Fixes #13814.
Reference: https://github.com/systemd/systemd/commit/3126d64e5f04cd39033f8c5055e80440b8680d86
Conflict: NA
---
 src/libsystemd/sd-device/device-enumerator.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/libsystemd/sd-device/device-enumerator.c b/src/libsystemd/sd-device/device-enumerator.c
index 5b54641213..a1932f41f9 100644
--- a/src/libsystemd/sd-device/device-enumerator.c
+++ b/src/libsystemd/sd-device/device-enumerator.c
@@ -506,7 +506,10 @@ static int enumerator_scan_dir_and_add_devices(sd_device_enumerator *enumerator,
 
                 initialized = sd_device_get_is_initialized(device);
                 if (initialized < 0) {
-                        r = initialized;
+                        if (initialized != -ENOENT)
+                                /* this is necessarily racey, so ignore missing devices */
+                                r = initialized;
+
                         continue;
                 }
 
@@ -639,7 +642,9 @@ static int enumerator_scan_devices_tag(sd_device_enumerator *enumerator, const c
 
                 k = sd_device_get_subsystem(device, &subsystem);
                 if (k < 0) {
-                        r = k;
+                        if (k != -ENOENT)
+                                /* this is necessarily racy, so ignore missing devices */
+                                r = k;
                         continue;
                 }
 
-- 
2.23.0

