]> git.ozlabs.org Git - petitboot/blobdiff - discover/udev.c
Fix device mount retry
[petitboot] / discover / udev.c
index 1a527895878d4de36f17406c3fe7ad44c1ceb07d..bd7c6bd1abb28f2038fb828e2253fc665632f661 100644 (file)
@@ -30,7 +30,12 @@ struct udev {
 static void udev_print_event(struct event *event)
 {
        const char *action, *params[] = {
-               "DEVNAME", "ID_TYPE", "ID_BUS", "ID_FS_UUID", "ID_FS_LABEL",
+               "DEVNAME",
+               "DEVPATH",
+               "ID_TYPE",
+               "ID_BUS",
+               "ID_FS_UUID",
+               "ID_FS_LABEL",
                NULL,
        };
        int i;
@@ -43,7 +48,6 @@ static void udev_print_event(struct event *event)
        for (i = 0; params[i]; i++)
                pb_log("\t%-12s => %s\n",
                                params[i], event_get_param(event, params[i]));
-
 }
 
 static void udev_handle_message(struct udev *udev, char *buf, int len)
@@ -54,6 +58,8 @@ static void udev_handle_message(struct udev *udev, char *buf, int len)
        event = talloc(udev, struct event);
        event->type = EVENT_TYPE_UDEV;
 
+       pb_log("%s\n", buf);
+
        result = event_parse_ad_message(event, buf, len);
 
        if (result)
@@ -116,6 +122,7 @@ struct udev *udev_init(struct device_handler *handler)
 
        talloc_set_destructor(udev, udev_destructor);
 
+       memset(&addr, 0, sizeof addr);
        addr.sun_family = AF_UNIX;
        strcpy(addr.sun_path, PBOOT_DEVICE_SOCKET);
 
@@ -137,7 +144,7 @@ out_err:
 
 int udev_trigger(struct udev __attribute__((unused)) *udev)
 {
-       int rc = system("/sbin/udevadm trigger --subsystem-match=block");
+       int rc = system("/sbin/udevadm trigger --subsystem-match=block --action=add");
 
        if (rc)
                pb_log("udev trigger failed: %d (%d)\n", rc, WEXITSTATUS(rc));