#include <fcntl.h>
#include <dirent.h>
#include <limits.h>
+#include <errno.h>
#include <sys/stat.h>
#include <sys/types.h>
-#include <assert.h>
#include "libudev.h"
#include "libudev-private.h"
switch (state) {
case DEVICE_FAILED:
/* record event in the failed directory */
- if (udev_queue_export->failed_count == 0)
- util_create_path(udev, filename);
udev_queue_export->failed_count++;
-
+ util_create_path(udev, filename);
udev_selinux_setfscreatecon(udev, filename, S_IFLNK);
symlink(udev_device_get_devpath(udev_device), filename);
udev_selinux_resetfscreatecon(udev);
break;
case DEVICE_FINISHED:
- if (udev_device_get_sysname_old(udev_device) != NULL &&
- strcmp(udev_device_get_sysname_old(udev_device), udev_device_get_sysname(udev_device)) != 0) {
- /* "move" event - rename failed file to current name, do not delete failed */
- char filename_old[UTIL_PATH_SIZE];
-
- util_strscpyl(filename_old, sizeof(filename_old), udev_get_dev_path(udev), "/.udev/failed/",
- udev_device_get_subsystem(udev_device), ":", udev_device_get_sysname_old(udev_device), NULL);
- if (rename(filename_old, filename) == 0)
- info(udev, "renamed devpath, moved failed state of '%s' to %s'\n",
- udev_device_get_devpath_old(udev_device), udev_device_get_devpath(udev_device));
- }
break;
}