summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NEWS12
-rw-r--r--src/udev-event.c4
-rw-r--r--src/udev-node.c14
-rw-r--r--src/udev.h4
4 files changed, 20 insertions, 14 deletions
diff --git a/NEWS b/NEWS
index fa1edff696..281ed40569 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,15 @@
+udev 180
+========
+Fix for ID_PART_ENTRY_* property names, added by the blkid built-in. The
+fix is needed for udisk2 to operate properly.
+
+Fix for skipped rule execution when the kernel has removed the device
+node in /dev again, before the event was even started. The fix is needed
+to run device-mapper/LVM events properly.
+
+Fix for the man page installation, which was skipped when xsltproc was not
+installed.
+
udev 179
========
Bugfix for $name resolution, which broke at least some keymap handling.
diff --git a/src/udev-event.c b/src/udev-event.c
index 7ecaf85536..45dd77ba2e 100644
--- a/src/udev-event.c
+++ b/src/udev-event.c
@@ -894,7 +894,7 @@ int udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules,
udev_rules_apply_to_event(rules, event, sigmask);
if (major(udev_device_get_devnum(dev)) != 0)
- err = udev_node_remove(dev);
+ udev_node_remove(dev);
} else {
event->dev_db = udev_device_new_from_syspath(event->udev, udev_device_get_syspath(dev));
if (event->dev_db != NULL) {
@@ -952,7 +952,7 @@ int udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules,
}
}
- err = udev_node_add(dev, event->mode, event->uid, event->gid);
+ udev_node_add(dev, event->mode, event->uid, event->gid);
}
/* preserve old, or get new initialization timestamp */
diff --git a/src/udev-node.c b/src/udev-node.c
index 8d7db7101b..7a01a479ee 100644
--- a/src/udev-node.c
+++ b/src/udev-node.c
@@ -327,7 +327,7 @@ out:
return err;
}
-int udev_node_add(struct udev_device *dev, mode_t mode, uid_t uid, gid_t gid)
+void udev_node_add(struct udev_device *dev, mode_t mode, uid_t uid, gid_t gid)
{
struct udev *udev = udev_device_get_udev(dev);
char filename[UTIL_PATH_SIZE];
@@ -337,9 +337,8 @@ int udev_node_add(struct udev_device *dev, mode_t mode, uid_t uid, gid_t gid)
info(udev, "handling device node '%s', devnum=%s, mode=%#o, uid=%d, gid=%d\n",
udev_device_get_devnode(dev), udev_device_get_id_filename(dev), mode, uid, gid);
- err = node_fixup(dev, mode, uid, gid);
- if (err < 0)
- goto exit;
+ if (node_fixup(dev, mode, uid, gid) < 0)
+ return;
/* always add /dev/{block,char}/$major:$minor */
snprintf(filename, sizeof(filename), "%s/%s/%u:%u",
@@ -356,11 +355,9 @@ int udev_node_add(struct udev_device *dev, mode_t mode, uid_t uid, gid_t gid)
else
link_update(dev, udev_list_entry_get_name(list_entry), 1);
}
-exit:
- return err;
}
-int udev_node_remove(struct udev_device *dev)
+void udev_node_remove(struct udev_device *dev)
{
struct udev *udev = udev_device_get_udev(dev);
struct udev_list_entry *list_entry;
@@ -368,7 +365,6 @@ int udev_node_remove(struct udev_device *dev)
struct stat stats;
struct udev_device *dev_check;
char filename[UTIL_PATH_SIZE];
- int err = 0;
/* remove/update symlinks, remove symlinks from name index */
udev_list_entry_foreach(list_entry, udev_device_get_devlinks_list_entry(dev))
@@ -380,6 +376,4 @@ int udev_node_remove(struct udev_device *dev)
strcmp(udev_device_get_subsystem(dev), "block") == 0 ? "block" : "char",
major(udev_device_get_devnum(dev)), minor(udev_device_get_devnum(dev)));
unlink(filename);
-out:
- return err;
}
diff --git a/src/udev.h b/src/udev.h
index 9ed6804fe7..bc051c9b65 100644
--- a/src/udev.h
+++ b/src/udev.h
@@ -89,8 +89,8 @@ void udev_watch_end(struct udev *udev, struct udev_device *dev);
struct udev_device *udev_watch_lookup(struct udev *udev, int wd);
/* udev-node.c */
-int udev_node_add(struct udev_device *dev, mode_t mode, uid_t uid, gid_t gid);
-int udev_node_remove(struct udev_device *dev);
+void udev_node_add(struct udev_device *dev, mode_t mode, uid_t uid, gid_t gid);
+void udev_node_remove(struct udev_device *dev);
void udev_node_update_old_links(struct udev_device *dev, struct udev_device *dev_old);
/* udev-ctrl.c */