summaryrefslogtreecommitdiff
path: root/drivers/block/loop.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@penguin.transmeta.com>2003-02-10 22:58:04 -0800
committerLinus Torvalds <torvalds@home.transmeta.com>2003-02-10 22:58:04 -0800
commit43fea1be12abf52dc12a61eef6059beed55c2df8 (patch)
tree61be163e2e6f5367fc61d76f8bcabde48a2acc24 /drivers/block/loop.c
parentf0bec55fe38773d2022f1b585067a7a773942769 (diff)
Sanitize kernel daemon signal handling and process naming.
Add a name argument to daemonize() (va_arg) to avoid all the kernel threads having to duplicate the name setting over and over again. Make daemonize() disable all signals by default, and add a "allow_signal()" function to let daemons say they explicitly want to support a signal. Make flush_signal() take the signal lock, so that callers do not need to.
Diffstat (limited to 'drivers/block/loop.c')
-rw-r--r--drivers/block/loop.c8
1 files changed, 1 insertions, 7 deletions
diff --git a/drivers/block/loop.c b/drivers/block/loop.c
index 71ae15a0c6fd..85636a00c3c6 100644
--- a/drivers/block/loop.c
+++ b/drivers/block/loop.c
@@ -577,18 +577,12 @@ static int loop_thread(void *data)
struct loop_device *lo = data;
struct bio *bio;
- daemonize();
+ daemonize("loop%d", lo->lo_number);
- sprintf(current->comm, "loop%d", lo->lo_number);
current->flags |= PF_IOTHREAD; /* loop can be used in an encrypted device
hence, it mustn't be stopped at all because it could
be indirectly used during suspension */
- spin_lock_irq(&current->sighand->siglock);
- sigfillset(&current->blocked);
- flush_signals(current);
- spin_unlock_irq(&current->sighand->siglock);
-
set_user_nice(current, -20);
lo->lo_state = Lo_bound;