diff options
Diffstat (limited to 'fs/coredump.c')
-rw-r--r-- | fs/coredump.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/fs/coredump.c b/fs/coredump.c index 42c3b8423669..319f973bab72 100644 --- a/fs/coredump.c +++ b/fs/coredump.c @@ -693,6 +693,20 @@ int dump_write(struct file *file, const void *addr, int nr) } EXPORT_SYMBOL(dump_write); +int dump_emit(struct coredump_params *cprm, const void *addr, int nr) +{ + struct file *file = cprm->file; + if (dump_interrupted() || !access_ok(VERIFY_READ, addr, nr)) + return 0; + if (cprm->written + nr > cprm->limit) + return 0; + if (file->f_op->write(file, addr, nr, &file->f_pos) != nr) + return 0; + cprm->written += nr; + return 1; +} +EXPORT_SYMBOL(dump_emit); + int dump_seek(struct file *file, loff_t off) { int ret = 1; |