From 18d2fb228bc155fc357262ec2dc5713318bab453 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Wed, 1 Sep 2021 04:14:42 +0900 Subject: [PATCH] udev-node: stack directory must exist when adding device node symlink (cherry picked from commit 46070dbf26435ba0def099121f46a6253f3f19b6) Related: #1977994 --- src/udev/udev-node.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) 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);