summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Kerr <jk@ozlabs.org>2013-09-18 11:49:14 +0800
committerJeremy Kerr <jk@ozlabs.org>2013-09-19 13:12:40 +0800
commite52b37c27c267c882d82cd1e34412817b5a4dbce (patch)
tree90e9283ff3ab0c16c59f90adfa38d40771773123
parentbad9baa8794ed0c31b7f93b110815d98db7b2d7a (diff)
downloadtalos-petitboot-e52b37c27c267c882d82cd1e34412817b5a4dbce.tar.gz
talos-petitboot-e52b37c27c267c882d82cd1e34412817b5a4dbce.zip
discover: Consolidate device path, name and ID.
This change cleans up our usage of device path, names and IDs. Device ID is the kernel name for the device. We also expose this through lookup_by_name. Device path is the path to the dev node (ie, always starts with /dev/), and is only used for mounting. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
-rw-r--r--discover/device-handler.c35
-rw-r--r--discover/device-handler.h2
-rw-r--r--discover/udev.c3
3 files changed, 9 insertions, 31 deletions
diff --git a/discover/device-handler.c b/discover/device-handler.c
index 11fb115..7a84302 100644
--- a/discover/device-handler.c
+++ b/discover/device-handler.c
@@ -86,11 +86,6 @@ struct discover_boot_option *discover_boot_option_create(
return opt;
}
-static int device_match_path(struct discover_device *dev, const char *path)
-{
- return dev->device_path && !strcmp(dev->device_path, path);
-}
-
static int device_match_uuid(struct discover_device *dev, const char *uuid)
{
return dev->uuid && !strcmp(dev->uuid, uuid);
@@ -130,26 +125,10 @@ static struct discover_device *device_lookup(
struct discover_device *device_lookup_by_name(struct device_handler *handler,
const char *name)
{
- struct discover_device *dev;
- char *path;
-
- if (strncmp(name, "/dev/", strlen("/dev/")))
- path = talloc_asprintf(NULL, "/dev/%s", name);
- else
- path = talloc_strdup(NULL, name);
-
- dev = device_lookup_by_path(handler, path);
+ if (!strncmp(name, "/dev/", strlen("/dev/")))
+ name += strlen("/dev/");
- talloc_free(path);
-
- return dev;
-}
-
-struct discover_device *device_lookup_by_path(
- struct device_handler *device_handler,
- const char *path)
-{
- return device_lookup(device_handler, device_match_path, path);
+ return device_lookup_by_id(handler, name);
}
struct discover_device *device_lookup_by_uuid(
@@ -331,7 +310,7 @@ static struct discover_device *discover_device_create(
struct event *event)
{
struct discover_device *dev;
- const char *devname;
+ const char *devnode;
dev = find_device(handler, event->device);
if (dev)
@@ -341,9 +320,9 @@ static struct discover_device *discover_device_create(
dev->device = talloc_zero(dev, struct device);
list_init(&dev->boot_options);
- devname = event_get_param(ctx->event, "DEVNAME");
- if (devname)
- dev->device_path = talloc_strdup(dev, devname);
+ devnode = event_get_param(ctx->event, "node");
+ if (devnode)
+ dev->device_path = talloc_strdup(dev, devnode);
dev->device->id = talloc_strdup(dev, event->device);
dev->device->type = event_device_type(dev->device, event);
diff --git a/discover/device-handler.h b/discover/device-handler.h
index 0cd9c59..e71212c 100644
--- a/discover/device-handler.h
+++ b/discover/device-handler.h
@@ -78,8 +78,6 @@ int device_handler_event(struct device_handler *handler, struct event *event);
struct discover_device *device_lookup_by_name(struct device_handler *handler,
const char *name);
-struct discover_device *device_lookup_by_path(struct device_handler *handler,
- const char *path);
struct discover_device *device_lookup_by_uuid(struct device_handler *handler,
const char *uuid);
struct discover_device *device_lookup_by_label(struct device_handler *handler,
diff --git a/discover/udev.c b/discover/udev.c
index d13ced7..f9eb26d 100644
--- a/discover/udev.c
+++ b/discover/udev.c
@@ -125,7 +125,8 @@ static int udev_handle_dev_action(struct udev_device *dev, const char *action)
event->n_params = 0;
event->params = NULL;
- event_set_param(event, "DEVNAME", devnode);
+ event_set_param(event, "path", devpath);
+ event_set_param(event, "node", devnode);
event_set_param(event, "type", devtype);
udev_setup_event_params(dev, event);
OpenPOWER on IntegriCloud