From 2b41e68a08548ce44b4d145900dab2bb04cd34f7 Mon Sep 17 00:00:00 2001 From: "kay.sievers@vrfy.org" Date: Sat, 6 Nov 2004 14:28:01 +0100 Subject: [PATCH] replace tdb database by simple lockless file database This makes the udev operation completely lockless by storing a file for every node in /dev/.udevdb/* This solved the problem with deadlocking concurrent udev processes waiting for each other to release the file lock under heavy load. --- udev.c | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) (limited to 'udev.c') diff --git a/udev.c b/udev.c index 78090605..d8cb4365 100644 --- a/udev.c +++ b/udev.c @@ -38,8 +38,6 @@ #include "namedev.h" #include "udevdb.h" -/* timeout flag for udevdb */ -extern sig_atomic_t gotalarm; /* global variables */ char **main_argv; @@ -64,8 +62,7 @@ static void asmlinkage sig_handler(int signum) { switch (signum) { case SIGALRM: - gotalarm = 1; - break; + exit(1); case SIGINT: case SIGTERM: exit(20 + signum); @@ -153,10 +150,6 @@ int main(int argc, char *argv[], char *envp[]) /* trigger timout to interrupt blocking syscalls */ alarm(ALARM_TIMEOUT); - /* initialize udev database */ - if (udevdb_init(UDEVDB_DEFAULT) != 0) - info("error: unable to initialize database, continuing without database"); - switch(act_type) { case UDEVSTART: dbg("udevstart"); @@ -196,8 +189,6 @@ int main(int argc, char *argv[], char *envp[]) dev_d_execute(&udev); } - udevdb_exit(); - exit: logging_close(); return retval; -- cgit 1.2.3-korg