X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=udev-remove.c;h=c838f15ce3521a6510a128320db658b6afef47a2;hp=dc6fcfc331e7c8d16305dd45f4fd9497f4c6aea0;hb=bbbe503ec1a5623a5a8abd003f46fdd8c3581054;hpb=dd64e26b0c88892b367f57c4c7a7484e35641c7c diff --git a/udev-remove.c b/udev-remove.c index dc6fcfc33..c838f15ce 100644 --- a/udev-remove.c +++ b/udev-remove.c @@ -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; }