summaryrefslogtreecommitdiff
path: root/fs/coredump.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/coredump.c')
-rw-r--r--fs/coredump.c14
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;