preserve = 1;
udev_selinux_lsetfilecon(udev, file, mode);
/* update time stamp when we re-use the node, like on media change events */
- utimes(file, NULL);
+ utimensat(AT_FDCWD, file, NULL, 0);
} else {
char file_tmp[UTIL_PATH_SIZE + sizeof(TMP_FILE_EXT)];
info(udev, "preserve already existing symlink '%s' to '%s'\n",
slink, target);
udev_selinux_lsetfilecon(udev, slink, S_IFLNK);
- lutimes(slink, NULL);
+ utimensat(AT_FDCWD, slink, NULL, AT_SYMLINK_NOFOLLOW);
goto exit;
}
}
/* create/update symlinks, add symlinks to name index */
udev_list_entry_foreach(list_entry, udev_device_get_devlinks_list_entry(dev)) {
- if (udev_list_entry_get_flag(list_entry))
+ if (udev_list_entry_get_flags(list_entry))
/* simple unmanaged link name */
node_symlink(udev, udev_device_get_devnode(dev), udev_list_entry_get_name(list_entry));
else
dev_check = udev_device_new_from_syspath(udev, udev_device_get_syspath(dev));
if (dev_check != NULL && stats.st_rdev == udev_device_get_devnum(dev_check)) {
/* do not remove device node if the same sys-device is re-created in the meantime */
- info(udev, "keeping device node '%s'\n", devnode);
+ info(udev, "keeping device node of existing device'%s'\n", devnode);
} else {
info(udev, "removing device node '%s'\n", devnode);
err = util_unlink_secure(udev, devnode);