1
0
mirror of https://github.com/systemd/systemd.git synced 2025-09-22 13:45:07 +03:00

udevd: create static device links only when the target exists

For example, not all systems have PROC_KCORE enabled. Avoid a broken symbolic
link in those cases.

Signed-off-by: Yin Kangkai <kangkai.yin@intel.com>
Signed-off-by: Martin Pitt <martin.pitt@ubuntu.com>
This commit is contained in:
Yin Kangkai
2010-08-05 16:17:00 +08:00
committed by Martin Pitt
parent 40929a0222
commit 08f11597f2

View File

@@ -900,11 +900,15 @@ static void static_dev_create_links(struct udev *udev, DIR *dir)
unsigned int i;
for (i = 0; i < ARRAY_SIZE(stdlinks); i++) {
struct stat sb;
if (stat(stdlinks[i].target, &sb) == 0) {
udev_selinux_setfscreateconat(udev, dirfd(dir), stdlinks[i].link, S_IFLNK);
if (symlinkat(stdlinks[i].target, dirfd(dir), stdlinks[i].link) < 0 && errno == EEXIST)
utimensat(dirfd(dir), stdlinks[i].link, NULL, AT_SYMLINK_NOFOLLOW);
udev_selinux_resetfscreatecon(udev);
}
}
}
static void static_dev_create_from_devices(struct udev *udev, DIR *dir)