diff options
Diffstat (limited to 'fs/binfmt_aout.c')
-rw-r--r-- | fs/binfmt_aout.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/binfmt_aout.c b/fs/binfmt_aout.c index f47f467ec..122491c7a 100644 --- a/fs/binfmt_aout.c +++ b/fs/binfmt_aout.c @@ -101,7 +101,7 @@ do_aout_core_dump(long signr, struct pt_regs * regs) # define START_STACK(u) (u.start_stack) #endif - if (!current->dumpable || current->mm->count != 1) + if (!current->dumpable || atomic_read(¤t->mm->count) != 1) return 0; current->dumpable = 0; @@ -129,7 +129,7 @@ do_aout_core_dump(long signr, struct pt_regs * regs) if (get_write_access(inode)) goto end_coredump; if (init_private_file(&file, dentry, 3)) - goto end_coredump; + goto end_coredump_write; if (!file.f_op->write) goto close_coredump; has_dumped = 1; @@ -213,6 +213,7 @@ do_aout_core_dump(long signr, struct pt_regs * regs) close_coredump: if (file.f_op->release) file.f_op->release(inode,&file); +end_coredump_write: put_write_access(inode); end_coredump: set_fs(fs); |