diff options
Diffstat (limited to 'fs')
-rw-r--r-- | fs/coredump.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/fs/coredump.c b/fs/coredump.c index d52f6bd5ad8e..f91cfd8cd5f2 100644 --- a/fs/coredump.c +++ b/fs/coredump.c | |||
@@ -280,8 +280,8 @@ static int zap_process(struct task_struct *start, int exit_code) | |||
280 | return nr; | 280 | return nr; |
281 | } | 281 | } |
282 | 282 | ||
283 | static inline int zap_threads(struct task_struct *tsk, struct mm_struct *mm, | 283 | static int zap_threads(struct task_struct *tsk, struct mm_struct *mm, |
284 | struct core_state *core_state, int exit_code) | 284 | struct core_state *core_state, int exit_code) |
285 | { | 285 | { |
286 | struct task_struct *g, *p; | 286 | struct task_struct *g, *p; |
287 | unsigned long flags; | 287 | unsigned long flags; |
@@ -291,6 +291,9 @@ static inline int zap_threads(struct task_struct *tsk, struct mm_struct *mm, | |||
291 | if (!signal_group_exit(tsk->signal)) { | 291 | if (!signal_group_exit(tsk->signal)) { |
292 | mm->core_state = core_state; | 292 | mm->core_state = core_state; |
293 | nr = zap_process(tsk, exit_code); | 293 | nr = zap_process(tsk, exit_code); |
294 | /* ignore all signals except SIGKILL, see prepare_signal() */ | ||
295 | tsk->signal->flags |= SIGNAL_GROUP_COREDUMP; | ||
296 | clear_tsk_thread_flag(tsk, TIF_SIGPENDING); | ||
294 | } | 297 | } |
295 | spin_unlock_irq(&tsk->sighand->siglock); | 298 | spin_unlock_irq(&tsk->sighand->siglock); |
296 | if (unlikely(nr < 0)) | 299 | if (unlikely(nr < 0)) |
@@ -514,12 +517,6 @@ void do_coredump(siginfo_t *siginfo) | |||
514 | 517 | ||
515 | old_cred = override_creds(cred); | 518 | old_cred = override_creds(cred); |
516 | 519 | ||
517 | /* | ||
518 | * Clear any false indication of pending signals that might | ||
519 | * be seen by the filesystem code called to write the core file. | ||
520 | */ | ||
521 | clear_thread_flag(TIF_SIGPENDING); | ||
522 | |||
523 | ispipe = format_corename(&cn, &cprm); | 520 | ispipe = format_corename(&cn, &cprm); |
524 | 521 | ||
525 | if (ispipe) { | 522 | if (ispipe) { |