diff --git a/src/libsystemd/sd-device/device-enumerator.c b/src/libsystemd/sd-device/device-enumerator.c index 6888b58b67..3641348881 100644 --- a/src/libsystemd/sd-device/device-enumerator.c +++ b/src/libsystemd/sd-device/device-enumerator.c @@ -420,7 +420,8 @@ static int enumerator_scan_dir_and_add_devices(sd_device_enumerator *enumerator, dir = opendir(path); if (!dir) - return -errno; + /* this is necessarily racey, so ignore missing directories */ + return (errno == ENOENT && (subdir1 || subdir2)) ? 0 : -errno; FOREACH_DIRENT_ALL(dent, dir, return -errno) { _cleanup_(sd_device_unrefp) sd_device *device = NULL;