summaryrefslogtreecommitdiffstats
path: root/discover
diff options
context:
space:
mode:
authorGeoff Levand <geoffrey.levand@am.sony.com>2009-04-12 15:11:40 +0000
committerJeremy Kerr <jk@ozlabs.org>2009-06-30 15:29:03 +0800
commit7eb1d21503768c849e2d4b8c455a182d82cdc966 (patch)
tree0cc09f7cb0904c852a1b4d29324bb2d68c715bc8 /discover
parentce8a340bffd224290ad5219baa5f0466fcd9fd55 (diff)
downloadtalos-petitboot-7eb1d21503768c849e2d4b8c455a182d82cdc966.tar.gz
talos-petitboot-7eb1d21503768c849e2d4b8c455a182d82cdc966.zip
Add udev trigger
Add a new routine udev_trigger() that requests a replay of system udev events. Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com> Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Diffstat (limited to 'discover')
-rw-r--r--discover/pb-discover.c2
-rw-r--r--discover/udev.c10
-rw-r--r--discover/udev.h1
3 files changed, 13 insertions, 0 deletions
diff --git a/discover/pb-discover.c b/discover/pb-discover.c
index 2b04e62..4d61814 100644
--- a/discover/pb-discover.c
+++ b/discover/pb-discover.c
@@ -52,6 +52,8 @@ int main(void)
if (!udev)
return EXIT_FAILURE;
+ udev_trigger(udev);
+
for (running = 1; running;) {
if (waiter_poll())
break;
diff --git a/discover/udev.c b/discover/udev.c
index b93c1a5..5496712 100644
--- a/discover/udev.c
+++ b/discover/udev.c
@@ -208,6 +208,16 @@ out_err:
return NULL;
}
+int udev_trigger(struct udev __attribute__((unused)) *udev)
+{
+ int rc = system("/sbin/udevadm trigger --subsystem-match=block");
+
+ if (rc)
+ pb_log("udev trigger failed: %d (%d)\n", rc, WEXITSTATUS(rc));
+
+ return WEXITSTATUS(rc);
+}
+
void udev_destroy(struct udev *udev)
{
talloc_free(udev);
diff --git a/discover/udev.h b/discover/udev.h
index 250273f..afdbbe1 100644
--- a/discover/udev.h
+++ b/discover/udev.h
@@ -21,6 +21,7 @@ struct udev;
struct device_handler;
struct udev *udev_init(struct device_handler *handler);
+int udev_trigger(struct udev *udev);
void udev_destroy(struct udev *udev);
OpenPOWER on IntegriCloud