diff options
author | Jeremy Kerr <jk@ozlabs.org> | 2013-09-18 11:49:14 +0800 |
---|---|---|
committer | Jeremy Kerr <jk@ozlabs.org> | 2013-09-19 13:12:40 +0800 |
commit | e52b37c27c267c882d82cd1e34412817b5a4dbce (patch) | |
tree | 90e9283ff3ab0c16c59f90adfa38d40771773123 | |
parent | bad9baa8794ed0c31b7f93b110815d98db7b2d7a (diff) | |
download | talos-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.c | 35 | ||||
-rw-r--r-- | discover/device-handler.h | 2 | ||||
-rw-r--r-- | discover/udev.c | 3 |
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); |