chiark / gitweb /
[PATCH] netdev - udevdb+dev.d changes
[elogind.git] / udev-remove.c
index dc6fcfc331e7c8d16305dd45f4fd9497f4c6aea0..c838f15ce3521a6510a128320db658b6afef47a2 100644 (file)
@@ -31,7 +31,6 @@
 #include "udev.h"
 #include "udev_lib.h"
 #include "udev_version.h"
-#include "udev_dbus.h"
 #include "logging.h"
 #include "namedev.h"
 #include "udevdb.h"
@@ -136,23 +135,26 @@ int udev_remove_device(char *path, char *subsystem)
        char *temp;
        int retval;
 
-       memset(&dev, 0, sizeof(dev));
+       memset(&dev, 0x00, sizeof(dev));
 
        retval = udevdb_get_dev(path, &dev);
-       if (retval) {
+       if (retval != 0) {
                dbg("'%s' not found in database, falling back on default name", path);
                temp = strrchr(path, '/');
                if (temp == NULL)
                        return -ENODEV;
                strfieldcpy(dev.name, &temp[1]);
        }
+       dbg("name='%s'", dev.name);
 
-       dbg("name is '%s'", dev.name);
+       dev.type = get_device_type(path, subsystem);
+       dev_d_send(&dev, subsystem);
        udevdb_delete_dev(path);
 
-       dev_d_send(&dev, subsystem);
-       sysbus_send_remove(dev.name, path);
+       if (dev.type == 'b' || dev.type == 'c')
+               retval = delete_node(&dev);
+       else if (dev.type == 'n')
+               retval = 0;
 
-       retval = delete_node(&dev);
        return retval;
 }