diff --git a/src/udev/udev-node.c b/src/udev/udev-node.c index 7cc9ee3670..4496a2bd9b 100644 --- a/src/udev/udev-node.c +++ b/src/udev/udev-node.c @@ -161,12 +161,13 @@ static int link_find_prioritized(sd_device *dev, bool add, const char *stackdir, dir = opendir(stackdir); if (!dir) { - if (errno == ENOENT) { - *ret = TAKE_PTR(target); - return !!*ret; - } + if (add) /* The stack directory must exist. */ + return -errno; + if (errno != ENOENT) + return -errno; - return -errno; + *ret = NULL; + return 0; } r = device_get_device_id(dev, &id);