diff options
author | kay.sievers@vrfy.org <kay.sievers@vrfy.org> | 2004-11-06 14:28:01 +0100 |
---|---|---|
committer | Greg KH <gregkh@suse.de> | 2005-04-26 22:16:40 -0700 |
commit | 2b41e68a08548ce44b4d145900dab2bb04cd34f7 (patch) | |
tree | f2e96c9f150775e3673891d38a5af23d4246c826 /udev.c | |
parent | 482b0ecd8fcc2651c003c6f1ae9a2d3301ecf34a (diff) |
[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.
Diffstat (limited to 'udev.c')
-rw-r--r-- | udev.c | 11 |
1 files changed, 1 insertions, 10 deletions
@@ -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; |