summaryrefslogtreecommitdiff
path: root/udev-add.c
diff options
context:
space:
mode:
authorgreg@kroah.com <greg@kroah.com>2003-10-17 23:32:17 -0700
committerGreg KH <gregkh@suse.de>2005-04-26 21:01:41 -0700
commitca9998602336f67eb2590819eecf416977885e2a (patch)
tree0c6f246d091f8a74922b7c1d7bdede4ca5566d1e /udev-add.c
parent1c596cc0a5357105a80ab07f0ebbe2eb330b2c28 (diff)
[PATCH] got "remove of named devices" working.
database code still needs some major cleanup.
Diffstat (limited to 'udev-add.c')
-rw-r--r--udev-add.c29
1 files changed, 6 insertions, 23 deletions
diff --git a/udev-add.c b/udev-add.c
index 6060bcf5f7..116ab2b448 100644
--- a/udev-add.c
+++ b/udev-add.c
@@ -137,7 +137,6 @@ int udev_add_device(char *device, char *subsystem)
{
struct sysfs_class_device *class_dev;
struct device_attr attr;
- struct udevice dbdev;
int major;
int minor;
char type;
@@ -164,33 +163,17 @@ int udev_add_device(char *device, char *subsystem)
retval = get_major_minor(class_dev, &major, &minor);
if (retval) {
- dbg ("get_major_minor failed");
+ dbg("get_major_minor failed");
goto exit;
}
- memset(&dbdev, 0, sizeof(dbdev));
- strncpy(dbdev.name, attr.name, NAME_SIZE);
- if (class_dev->sysdevice) {
- strncpy(dbdev.sysfs_path, class_dev->sysdevice->directory->path, PATH_SIZE);
- strncpy(dbdev.bus_id, class_dev->sysdevice->bus_id, ID_SIZE);
- }
- strncpy(dbdev.class_dev_name, class_dev->name, NAME_SIZE);
- if ((sysfs_get_name_from_path(subsystem, dbdev.class_name, NAME_SIZE)) != 0)
- strcpy(dbdev.class_name, "unkown");
- strcpy(dbdev.bus_name, "unknown");
- if (class_dev->driver != NULL)
- strncpy(dbdev.driver, class_dev->driver->name, NAME_SIZE);
- else
- strcpy(dbdev.driver, "unkown");
- dbdev.type = type;
- dbdev.major = major;
- dbdev.minor = minor;
- dbdev.mode = attr.mode;
- sysfs_close_class_device(class_dev);
+ retval = udevdb_add_device(device, class_dev, attr.name, type, major, minor, attr.mode);
- retval = udevdb_add_udevice(&dbdev);
if (retval != 0)
- goto exit;
+ dbg("udevdb_add_device failed, but we are going to try to create the node anyway. "
+ "But remove might not work properly for this device.");
+
+ sysfs_close_class_device(class_dev);
return create_node(attr.name, type, major, minor, attr.mode);