diff options
author | Kay Sievers <kay.sievers@suse.de> | 2005-07-05 22:40:42 +0200 |
---|---|---|
committer | Kay Sievers <kay.sievers@suse.de> | 2005-07-05 22:40:42 +0200 |
commit | 25103c4849d3bdee38d22e08c65cd60cf5d5bcc4 (patch) | |
tree | 3ad58616f2c8a35ad96075536ebd7a39b5988dfd /udev_remove.c | |
parent | 8bd41f36f793f7fc208ef6beb4b2b84e35a5e728 (diff) |
create udevdb files only if somehting interesting happened
Device nodes created with the default rule, without any symlink or option
are no longer saved to the udevdb. This saves us ~3 MB RAM for pretty much
useless files on tmpfs.
Note: HAL needs a fix to handle this correctly. It's already available on
the list.
Signed-off-by: Kay Sievers <kay.sievers@suse.de>
Diffstat (limited to 'udev_remove.c')
-rw-r--r-- | udev_remove.c | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/udev_remove.c b/udev_remove.c index cf28ff37a9..b9a4384ee0 100644 --- a/udev_remove.c +++ b/udev_remove.c @@ -143,18 +143,17 @@ int udev_remove_device(struct udevice *udev) if (udev->type != DEV_BLOCK && udev->type != DEV_CLASS) return 0; - /* remove node only if we can find it in our database */ - if (udev_db_get_device(udev, udev->devpath) != 0) { - dbg("'%s' not found in database, ignore event", udev->name); - return -1; - } - if (udev->ignore_remove) { - dbg("remove event for '%s' requested to be ignored by rule", udev->name); - return 0; + if (udev_db_get_device(udev, udev->devpath) == 0) { + if (udev->ignore_remove) { + dbg("remove event for '%s' requested to be ignored by rule", udev->name); + return 0; + } + dbg("remove name='%s'", udev->name); + udev_db_delete_device(udev); + } else { + dbg("'%s' not found in database, using kernel name '%s'", udev->devpath, udev->kernel_name); + strlcpy(udev->name, udev->kernel_name, sizeof(udev->name)); } - dbg("remove name='%s'", udev->name); - udev_db_delete_device(udev); - /* use full path to the environment */ snprintf(udev->devname, sizeof(udev->devname), "%s/%s", udev_root, udev->name); udev->devname[sizeof(udev->devname)-1] = '\0'; |