summaryrefslogtreecommitdiffstats
path: root/fs/coredump.c
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2013-05-04 14:45:54 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2013-05-04 14:45:54 -0400
commite86d35c38e37eb64cb5d11933c42a2a72f16ce23 (patch)
treed4fcf187fe062a36c67e6c15f3e4499f8edd7f4b /fs/coredump.c
parent0d5cadb87e0fa764db7fa0b78d8a6f173cb475a1 (diff)
downloadlinux-e86d35c38e37eb64cb5d11933c42a2a72f16ce23.tar.gz
linux-e86d35c38e37eb64cb5d11933c42a2a72f16ce23.tar.bz2
linux-e86d35c38e37eb64cb5d11933c42a2a72f16ce23.zip
do_coredump(): don't wait for thaw if coredump has already been interrupted
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/coredump.c')
-rw-r--r--fs/coredump.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/fs/coredump.c b/fs/coredump.c
index a9abe313e8d5..dafafbafa731 100644
--- a/fs/coredump.c
+++ b/fs/coredump.c
@@ -654,10 +654,11 @@ void do_coredump(siginfo_t *siginfo)
goto close_fail;
if (displaced)
put_files_struct(displaced);
- file_start_write(cprm.file);
- core_dumped = !dump_interrupted() && binfmt->core_dump(&cprm);
- file_end_write(cprm.file);
-
+ if (!dump_interrupted()) {
+ file_start_write(cprm.file);
+ core_dumped = binfmt->core_dump(&cprm);
+ file_end_write(cprm.file);
+ }
if (ispipe && core_pipe_limit)
wait_for_dump_helpers(cprm.file);
close_fail: