Skip to contentSkip to conversation

kupdated signal handling

PATCH New Benjamin Herrenschmidt 1 participant 1 message Oct 7, 2003 VFS

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 kupdated signal handling

Here's the fix to the problem we have been discussing...

===== fs/buffer.c 1.80 vs edited =====

fs/buffer.c +5 -5
@@ -3068,13 +3068,13 @@
 		remove_wait_queue(&kupdate_wait, &wait);
 		/* check for sigstop */
 		if (signal_pending(tsk)) {
-			int stopped = 0;
+			int sig, stopped = 0;
+			struct siginfo info;
+
 			spin_lock_irq(&tsk->sigmask_lock);
-			if (sigismember(&tsk->pending.signal, SIGSTOP)) {
-				sigdelset(&tsk->pending.signal, SIGSTOP);
+			sig = dequeue_signal(&current->blocked, &info);
+			if (sig == SIGSTOP)
 				stopped = 1;
-			}
-			recalc_sigpending(tsk);
 			spin_unlock_irq(&tsk->sigmask_lock);
 			if (stopped) {
 				tsk->state = TASK_STOPPED;